#python
Вопрос:
Я застрял на том, как написать функцию, которая получает в качестве входного эфира
- большая строка
- большое целое число
и превратиться в поплавок.
Проблема в том, что когда я превращаюсь в ПОПЛАВОК, в нем отсутствуют символы.
#value= int(45264444.4444444444466666254188888888888526)
value= "45264444.4444444444466666254188888888888526"
float(value)
output:45264444.44444445
Комментарии:
1. Если вам действительно нужна такая точность, поплавки — неподходящий инструмент для этой работы. Хотя, скорее всего, на самом деле вам не нужна такая большая точность.
2. используйте десятичную дробь вместо плавающей и, возможно, установите точность
Ответ №1:
A float
не может хранить произвольные числа, его точность ограничена. A float
сохранит несколько наиболее значимых цифр числа (в двоичной форме), а остальные отбросит. Вот почему вы видите значение усеченным.
Для более подробного рассмотрения проблемы см., например https://0.30000000000000004.com/, или какое-нибудь общее руководство по арифметике с плавающей запятой.