我正在使用python和django,我遇到了这个问题:我有不同的变量存储对象的价格,所有这些变量都采用350.32
,182.40
等格式。 ..
我的问题是这些数字是字符串,但在我的函数中我必须求它们达到总数,而python不会让我这样做,因为它不能对字符串求和。我已尝试int()
,float()
,format()
和Decimal()
,但它们总是给我一个只有一个十进制数或其他不正确值的值。我需要2个十进制数字,我需要总结它们的可能性。我该怎么办?
PS:对不起任何英语错误,我是意大利人。
答案 0 :(得分:3)
十进制似乎对我有用。
如果这些是价格,请不要将它们存储为花车...... floats will not give you exact numbers for decimal amounts like prices。
>>> from decimal import Decimal
>>> a = Decimal('1.23')
>>> b = Decimal('4.56')
>>> c = a + b
>>> c
Decimal('5.79')
答案 1 :(得分:1)
我正在使用Python 3.4.0,这对我有用:
>>>a = '350.32'
>>>float(a)
350.32
要将其舍入到2位小数,请执行以下操作:
>>>b = '53.4564564'
>>>round(float(b), 2)
53.46
答案 2 :(得分:0)
import re
eggs = "12.4, 15.5, 77.2"
print(sum(map(float, re.split("\s*,\s*", eggs))))
答案 3 :(得分:0)
这给出五位小数的完美十进制值
import random
from decimal import Decimal
def myrandom():
for i in range(10):
Rand = Decimal(random.random()* (0.909 - 0.101) + 0.101)
Rand = '{0:0.5f}'.format(Rand)
print (Rand)
myrandom()