无法将float转换为Decimal。首先将float转换为字符串

时间:2013-02-08 17:24:10

标签: python django decimal

我收到以下错误:

  

02/08 09:15:45>小数价格:0.00

     

02/08 09:15:45>小数价格=无

     

TypeError:无法将float转换为Decimal。首先将浮点数转换为字符串

这是我的代码:

            s.price = Decimal("%.2f" % (float(request.data['subscription_price'])))
            log('Decimal price: %s' % s.price)

            if s.price == Decimal("0.00"):
                s.price = None
                log('Decimal price = None')

关于我做错了什么的任何想法?我试图通过“if s.price == Decimal(”0.00“)来避免在数据库中保存0.00:”......无济于事。

2 个答案:

答案 0 :(得分:0)

如果你想将float number转换为带有两个小数位的Decimal,这就是工作代码:

import Decimal
In [10]: a = 7.3656
In [11]: Decimal(a).quantize(Decimal('.01'))
Out[11]: Decimal('7.37')

有关使用十进制数字的更多信息,请点击此处: http://docs.python.org/2/library/decimal.html

答案 1 :(得分:0)

if str(s.price) == str(Decimal("0.00")):
   s.price = None
   log('Decimal price = None')