原始码在这
https://github.com/bitcoin/bitcoin/blob/master/src/validation.cpp#L1267
GetBlockSubsidy 是用来计算第 n 个区块的区块奖励
在 src/amount.h 里可以看到 CAmount 其实是 int64_t
也就是 64 位元的带符号整数
而那个 50 * COIN 的 COIN 是 10 的 8 次方
所以 nSubsidy 的单位这里应是 satoshi
所以在这里的计算是没有使用到浮点数的
nSubsidy >>= halvings 就是让
挖矿奖励的二进制值向右位移 减半次数 位
所以原 po 的问题第11次减半周期的区块奖励就会是
4882812 satoshi
会把 0.5 satoshi 消除