Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Столкнулся с непонятным - откуда лишние 00000002?
@John__Psina

Откуда такой результат при сложении двух float чисел?

Почему 0.001429 + 0.000001 получается 0.0014299999999999998 ?!

Вот мой код:
num = 0.001427
while True:
    print(num)
    num += 0.000001
    sleep(1)

Такой получаю вывод:
0.001427
0.001428
0.001429
0.0014299999999999998
0.0014309999999999998
0.0014319999999999997
...

Что я делаю не так?
  • Вопрос задан
  • 183 просмотра
Подписаться 1 Простой
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Ответы на вопрос 3
JustKappaMan
@JustKappaMan
Frontend, backend, desktop. Всего понемногу.
Почитайте про то, как хранятся числа с плавающей точкой в памяти компьютера
Ответ написан
@WaterSmith
Android-разработчик. Java, Kotlin
Просто прими это как факт и помни, что float всегда нужно форматировать (округлять) прежде чем показывать пользователю.
А с технической стороны тебе уже ответили.
Ответ написан
@John__Psina Автор вопроса
Вот как я изменил код, учитывая полученные ответы:
num = Decimal('0.001427')
while True:
    print(num)
    num += Decimal('0.000001')
    sleep(1)
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы