ff = 123434534534535234234.999423423421231231
print('{:.3f}'.format(ff))
выдает:
123434534534535233536.000
Почему?
ff = 123434534534535234234.999423423421231231
print('{:.3f}'.format(ff))
выдает:
123434534534535233536.000
Почему?
123434534534535234234.999423423421231231
очень большое число для фиксированной точки и оно стало числом с плавающей точкой
1.2343453453453523e+20
считайте мы потеряли все цифры после 3523.
4234 стало 3536 из-за конвертации двоичного числа с плавающей точкой в десятичное при форматировании.
Если нужно пользоваться числами больше 12 знаков - лучше воспользоваться специальными типами из математических библиотек или из decimal.
''.format() точно здесь печатает этот float объект. В сторону: вне зависимости от величины ff это число с плавающей точкой в Питоне. Поэтому оно не "стало числом с плавающей точкой", оно всегда было числом с плавающей точкой. Даже если вы 0.1 напишите, это также число с плавающей точкой в Питоне. Подробней о плавающей точке, смотрите ответ на вопрос, на который я выше сослался
– jfs
Aug 04 '17 at 04:27
000или как123434534534535234234стал123434534534535233536? – gil9red Aug 02 '17 at 08:36