添加数字会导致奇怪的结果 - 例如“90.005.25”

时间:2013-02-17 20:18:25

标签: python floating-point addition

float(time)
if time == '90.00':
    added = added.getText()
    if not added == '':
        added = added.replace(':', '.')
        added = added.replace('+', '')
        added = ' '.join(added.split())
        float(added)
        time1 = time+added
        print time1

从足球比赛中,试图将“受伤时间”增加到90分钟。知道为什么这不起作用。我让他们两个并排打印

90.005.25

我觉得自己很笨,长期以来一直盯着这个。

由于

埃文

2 个答案:

答案 0 :(得分:1)

if time == '90.00':
    time = float(time)
    added = added.getText()
    if not added == '':
        added = added.replace(':', '.')
        added = added.replace('+', '')
        added = ' '.join(added.split())
        added = float(added)
        time1 = time+added
        print time1

float不是就地操作,float(added)会将added转换为浮点数,但不会更改added。你没有保存返回的值,所以它转到以太,added仍然是一个字符串。

答案 1 :(得分:0)

问题是你没有添加数字,而是添加字符串。在Python中,将+运算符应用于字符串连接它们:

>>> 12 + 34
46
>>> '12' + '34'
'1234'
>>> 'Hello ' + 'world!'
'Hello world!'

@tcaswell已经使用float而不是字符串添加提供了修复。

另一种选择是使用时间模块。这样做的好处是可以使用内置函数来完成将秒数转换为几分钟到几小时等等。