?

Log in

No account? Create an account
Previous Entry Share Next Entry
обожаю питон, обожаю floating
404
amarao_san
>>2746.90-2727.01
19.889999999999873

То есть всё понятно, но не в тот момент, когда речь идёт о деньгах. В этот момент такие цифры просто вымораживают.

  • 1
логичным решением будет увольнять людей, которые используют float для денег.

Уволь меня. Потому что я только что высчитывал остаток во флоате.

О, у меня биллинг на 50 тыс клиентов с float-ом.
Молодой очень был, а биллинг хороший получился, переписывать резона нет.
Так и живем.
Говоря серьезно, плюсы тоже есть.

Жора не программист, ему можно.

1. Высшего образования я думал только у меня нет, но даже я умудрился эту фишку просто знать в ещё дорабочие времена.
2. А непитон как-то лучше считает? perl,ruby 1.8-2.1 - все выдали тоже самое (ruby 1.8 вон тот хвост не выдал). php (5.2-5.6) не знаю - принт собака округляет сам. Как кстати и у питонов до 3.x
3. Ввиду (1) не понял о чём спич. Ввиду (2) не понял причём тут питон.

все они пользуются стандартным float. вот и результаты одинаковы.

Логично. Но я побежал проверил - вдруг кто свою библиотеку написал :)
Вон, я писал :)))
https://github.com/schors/sfun

В GiTS:SAC 2nd gig киборг-индивидуалист списывал такие остатки со счетов, вот до чего флоат довел

Деньги - хватай decimal блин :)

Алсо, в чем проблема использовать точные представления чисел во всяких этих билингах? Ну если 1/3, то и пусть будет 1/3, а не 0.34. Технически очень даже осуществимо не использовать все эти стандартные аппаратные представления чисел, а заюзать что-нибудь программно-велосипедное. В том же питоне: какой-нибудь класс exact чисел, стандартные методы алгебры к нему (сложение, вычитание, умножение, деление, что ещё бухгалтерам пригодится?). Представляется в десятиричном (и float не против) - храним там, иначе дробью/выражением.
BigInt конечно есть, но это не полностью решает проблему (хотя отодвигает её на случай многомиллиардных оборотов). Ну и fixed point из 80-х.
Вроде было что-то такое на жаве, да и наверняка на кучи других языков есть, идея-то очевидная.

Считать деньги - только в decimal. Причем и в mysql желательно тоже.

А ошибки округления куда? Как будто fixed point что-то чинит.

(no subject) (Anonymous) Expand
(no subject) (Anonymous) Expand

Не знаю, постил ли кто эту ссылку уже в треде, но

asvetlov.blogspot.ru/2011/02/blog-post.html

Феерия разврата и чат кутежа.


  • 1