Посты с тэгом float


Что приходит в голову при словах «числа в Питоне?»

int и float. Если речь идет о Python 2 — еще и упразднённый long. Наверное, вспомнится очень мало где используемый complex.

Я же хочу рассказать о Decimal и Fraction.

Decimal

Просто незаменим, если нужно считать деньги. Представим, что нам нужно работать с гривной (это такая украинская валюта, с точки зрения рассматриваемого вопроса ничем не отличающаяся от рубля, евро или доллара). Сотая часть гривны называется копейкой. Естественно думать, что гривны будут представлены целой частью числа, а копейки — дробной.

Что произойдёт, если для денег мы станем использовать float?

Как я писал в статье: 4 грн 31 коп будут на самом деле иметь внутреннюю запись 4.3099999999999996. Да, при печати всё показывае



Красивые графики javascriptRRD + Float


В продолжение статьи Python + Tornado + RRDTool: температура на улице и в серверной рассмотрим как можно рисовать rrd используя только javascript на стороне клиента. Результат будет такой:


Текстовое представление чисел с плавающей запятой в Питоне

В ходе довольно жаркой дискуссии был затронут один интересный вопрос: преобразование float в str.

Коротко о сути проблемы:

На Питоне 2.6 число 4.31 выглядит как 4.3099999999999996:

Python 2.6.6 (r266:84292, Sep 15 2010, 16:22:56) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4.31
4.3099999999999996
>>>

Питон 2.7 (и 3.1) работает несколько иначе:

Python 2.7.0+ (r27:82500, Sep 15 2010, 18:14:55) 
[GCC 4.4.5] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> 4.31
4.31
>>>

Это баг или изменение записи float чисел?

Ни то ни другое.

Во первых, это одно и то же число:

>>> 4.31 == 4.3099999999999996
True
>>>

Во вторых, битовые записи обоих чисел совпа