Python 3 - 将字符串转换为数字

时间:2015-10-22 20:24:54

标签: python django int sum decimal

我正在使用python和django,我遇到了这个问题:我有不同的变量存储对象的价格,所有这些变量都采用350.32182.40等格式。 ..

我的问题是这些数字是字符串,但在我的函数中我必须求它们达到总数,而python不会让我这样做,因为它不能对字符串求和。我已尝试int()float()format()Decimal(),但它们总是给我一个只有一个十进制数或其他不正确值的值。我需要2个十进制数字,我需要总结它们的可能性。我该怎么办?

PS:对不起任何英语错误,我是意大利人。

4 个答案:

答案 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()