170 похожих чатов

Доброе утро. Я новичок в пайтоне. Пишу обычный калькулятор. Но вот 0.1+0.7=0.799999…9



Причины я знаю. Но как это решить? Мне надо как минимум точность до 4 знака после нуля.

Нужно подключать внешнею библиотеку?
Или есть нативные решения?

Если можно -то пример решения. Спасибо!

14 ответов

18 просмотров

number = 100/7 print(f"Result is - {number:.2f}")

Dr-Zlad Автор вопроса

Спасибо большое!!! А где можно почитать в документации об этом?

Как по мне, лучше round() Вторым аргументом принимает округление после точки

Dr-Zlad Автор вопроса

Спасибо большое!!!

А есть в питоне тип данных с фиксированной запятой?

Decimal?

Dr-Zlad Автор вопроса

Ага, строка! А если серьезно: я писал что новичок, без понятия. Наверное такое есть только в строго типизированных ЯП. Вон в С# есть отдельный под тип decimal- и там всё просто.

и в пайтоне есть decimal

Dr-Zlad Автор вопроса

Вау! Круто! В какой версии завезли?

А что это?

ну в 2.7 есть

Dr-Zlad Автор вопроса

Это для работы с десятичными дробями. К примеру: 0.1+0.7 = 0.7999…9 А с типом decimal будет как надо 0.8 Короче там где финансы и математика - маст хев!

Dr-Zlad Автор вопроса

Я так понимаю 3.х это уже другой ЯП и на него выше 2.7 версии не распространяются? Или как?

Dr-Zlad Автор вопроса

from decimal import * result = Decimal(.1) + Decimal(.7) print(result) # 0.7999999999999999611421941381 Верный синтаксис? Я так понял что я ошибся... а как верно?

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта