Найти - Пользователи
Полная версия: Окгуглить до двух нулей после запятой. Как?
Начало » Python для новичков » Окгуглить до двух нулей после запятой. Как?
1
hildi
Собсно, задача такая: есть некоторая таблица про деньги, которая подразумевает, что перед запятой показываются рубли, а после запятой - копейки.

При суммах с “некруглыми копейками” отлично работает round(x, 2) - выводится эн рублей и двузначное число копеек, например, 10.99 рублей, и все счастливы.
Если же число копеек кратно десяти, то round окгугляет до ближайшего ненулевого знака, и получаются суммы типа 10.5 рублей или 10.0 рублей, от чего бухгалтерия зеленеет и перестает узнавать деньги в лицо.
Можно как-то красиво решить эту проблему? Некрасиво я уже решила, не скажу как, а то стыдно :-)

Еще бывает тоже неприятная ситуация, когда число рублей изначально целое, но при переводе в float оно обзаводится дробной частью где-то на 10-м знаке, и при округлении эта дробная часть изредка переезжает на видное место, вот как-то так: 10 —> 10.000000001 —> 10.01. Такое вылезло пару раз, сейчас не удается повторить. Но на всякий случай было бы здорово знать, как можно таких вещей гарантированно избежать.

Спасибо заранее!
Positive
>>> print '%.02f' % 1.5
1.50
hildi
Спасибо! То, что нужно!
PooH
hildi
Еще бывает тоже неприятная ситуация, когда число рублей изначально целое, но при переводе в float оно обзаводится дробной частью где-то на 10-м знаке, и при округлении эта дробная часть изредка переезжает на видное место, вот как-то так: 10 —> 10.000000001 —> 10.01. Такое вылезло пару раз, сейчас не удается повторить. Но на всякий случай было бы здорово знать, как можно таких вещей гарантированно избежать.
import decimal
http://docs.python.org/library/decimal.html
hildi
PooH
Спасибо! Ушла курить мануал про decimal и re :-)
beliy_shum
PooH
и с чем это связано????????????????????

пипец……
и в питоне начинаются сишные пляски с бубном?
denz
beliy_shum
PooH
и с чем это связано????????????????????
с тем, что десятичное(decimal) число является вещественным(float), но вещественное число не постулируется как десятичное. Учите матчасть.
PooH
beliy_shum
PooH
и с чем это связано????????????????????
Это связано с двумя формами представления вещественных чисел в компьюторах: с плавающей запятой и с фиксированной
beliy_shum
пипец……
и в питоне начинаются сишные пляски с бубном?
А вы как хотели? Вы не заметили что программистов готовят в высших учебных заведениях?
Учите матчасть, там еще больше геморроя чем видно на первый взгляд - потеря точности, накопление погрешностей, неравномерное распределение чисел на прямой
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB