如何将字符串转换为整数并相加?

1 投票
2 回答
2608 浏览
提问于 2025-04-17 10:40

我花了两个小时试图找到这个问题的解决办法,但什么都没找到。所以要么这是不可能的,要么这个问题太简单了,以至于没人写过。简单来说,我有两个字符串,它们的内容都是数字,但当我想把它们加在一起时,结果却是拼接在一起,而不是数字。以下是我的代码(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'

听起来这个程序对逗号不太满意——先试着把它去掉吧。

撰写回答