That's interesting. It's due to the fact that we only have 8 decimal places of accuracy.
/** Amount in satoshis (Can be negative) */ typedef int64_t CAmount; /** The amount of satoshis in one BTC. */ static constexpr CAmount COIN = 100000000;
CAmount GetBlockSubsidy(int nHeight, const Consensus::Params& consensusParams) { int halvings = nHeight / consensusParams.nSubsidyHalvingInterval; // Force block reward to zero when right shift is undefined. if (halvings >= 64) return 0; CAmount nSubsidy = 50 * COIN; // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years. nSubsidy >>= halvings; return nSubsidy; }