poltergeist
Если в этом бок, то вот ещё почитать: http://docs.python.org/tut/node16.html# … 0000000000
Не совсем. Поле у меня numeric(15, 5). Kinterbasdb отдает строку “2.03999” вместо “2.04”. Хотя корень в том, что вы описали. Вот и пришлось округлять.
Jenyay
Можно округлить при выводе строки, например как “%.3f” % (5.3)
Это наилучшее решение. Decimal работает, но часто выдает результат в экспоненциальной форме и не понравился он мне.
Конечный код:
def formatFloat(number, scale=2):
if number == “”: return number
n = number.split(“.”)
if len(n) == 1 : return n
if number == ‘9’ and len(n) >= scale: number = number +'9'
a = “%.”+str(scale)+'f'
a = a % (float(number))
return a.rstrip('0')