0

我收到以下错误:

02/08 09:15:45> 十进制价格:0.00

02/08 09:15:45> 十进制价格 = 无

TypeError:无法将浮点数转换为十进制。首先将浮点数转换为字符串

这是我的代码:

            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 无济于事。

4

2 回答 2

0

如果要将浮点数转换为小数点后两位的小数,这是工作代码:

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

于 2013-02-08T18:14:24.893 回答
0
if str(s.price) == str(Decimal("0.00")):
   s.price = None
   log('Decimal price = None')
于 2020-10-09T16:14:29.347 回答