Преобразуйте очень большое значение в FLOAT в python

#python

Вопрос:

Я застрял на том, как написать функцию, которая получает в качестве входного эфира

  • большая строка
  • большое целое число

и превратиться в поплавок.

Проблема в том, что когда я превращаюсь в ПОПЛАВОК, в нем отсутствуют символы.

 #value= int(45264444.4444444444466666254188888888888526)
value= "45264444.4444444444466666254188888888888526"

float(value)

output:45264444.44444445
 

Комментарии:

1. Если вам действительно нужна такая точность, поплавки — неподходящий инструмент для этой работы. Хотя, скорее всего, на самом деле вам не нужна такая большая точность.

2. используйте десятичную дробь вместо плавающей и, возможно, установите точность

Ответ №1:

A float не может хранить произвольные числа, его точность ограничена. A float сохранит несколько наиболее значимых цифр числа (в двоичной форме), а остальные отбросит. Вот почему вы видите значение усеченным.

Для более подробного рассмотрения проблемы см., например https://0.30000000000000004.com/, или какое-нибудь общее руководство по арифметике с плавающей запятой.