Поскольку, как правило, компьютер назначает фиксированный объем памяти для хранения каждого номера. Поскольку все в компьютере работает с двоичными цифрами, степени двух легко представимы, в то время как что-то вроде 1/3 на самом деле не так.
Поэтому 1/3 на компьютере на самом деле не "вещь, которая умножается на 3 до дать 1 ", как это в математике, это что-то вроде 0,3333333333 (или близко к этому). Поэтому в 3 раза это может быть 0,99999999, а не 1.
Посмотрите, как плавает язык программирования C, например, если вы хотите узнать больше о том, как это на самом деле представлено. Это несколько связано, но принцип заключается в том, что для представления di git назначается только определенное количество пространства, и поэтому произвольная точность просто невозможна.