如何将字符串转换为整数并相加?
我花了两个小时试图找到这个问题的解决办法,但什么都没找到。所以要么这是不可能的,要么这个问题太简单了,以至于没人写过。简单来说,我有两个字符串,它们的内容都是数字,但当我想把它们加在一起时,结果却是拼接在一起,而不是数字。以下是我的代码(Python)
currentNukeScriptName = nuke.root().name()
splitUpScriptName1 = currentNukeScriptName.split('/')
splitUpScriptName2 = splitUpScriptName1[-1]
splitScriptNameAndExtention = splitUpScriptName2.split('.')
currentNukeScriptName = splitScriptNameAndExtention[0]
splitUpCurrentScriptName = currentNukeScriptName.split('_')
currentVersionNumber = splitUpCurrentScriptName[-1]
decimalVersionNumber = "1" + "," + str(currentVersionNumber)
addingNumber = 1
newVersionNumber = str(decimalVersionNumber) + str(addingNumber)
print newVersionNumber
decimaleVersionNumber = 1,019
如果我把newVersionNumber的代码改成:
newVersionNumber = int(decimalVersionNumber) + int(addingNumber)
我得到的结果是:
# Result: Traceback (most recent call last):
File "<string>", line 10, in <module>
ValueError: invalid literal for int() with base 10: '1,019'
我不知道该怎么办……这是不可能的吗?还是我做错了什么?
编辑:
问题出在decimalVersionNumber上,我在这里加了一个逗号。有什么好的办法可以保留这个逗号,同时还能把数字加在一起吗?
2 个回答
0
你需要使用
int.Parse(decimalVersionNumber) + int.Parse(addingNumber)
这个方法会把数字的字符串形式转换成整数,这样就可以进行加法运算了。
举个例子:
字符串连接:
"10" + "20" = "1020"
整数相加,先把字符串转换成整数:
int.Parse("10") + int.Parse("20") = 30
6
ValueError: invalid literal for int() with base 10: '1,019'
听起来这个程序对逗号不太满意——先试着把它去掉吧。