英文:
Why is this Golang code to convert a string to an integer failing?
问题
这应该很简单:
strconv.Atoi("1250000.0000")
但是会出现错误:
0 strconv.ParseInt: 解析"1250000.0000"时出现无效语法
有什么线索吗?
英文:
This should have been simple:
strconv.Atoi("1250000.0000")
This results in an error:
>0 strconv.ParseInt: parsing "1250000.0000": invalid syntax
Any clues?
答案1
得分: 13
Atoi
只适用于可以解析为整数的字符串。
你需要使用parseFloat。
答案2
得分: 1
dystroy所说的是正确的,但请记住浮点数是不精确的,这样你可能会得到一个错误的答案。在你的情况下,你可以简单地按照句点将字符串分割,然后对其使用Atoi
函数。
strconv.Atoi(strings.Split("1250000.0000", ".")[0])
英文:
What dystroy said is true, but keep in mind that floats are inprecise and you could get an incorrect answer that way. In your case you can simply split the string on the period and then use Atoi
on that.
strconv.Atoi(strings.Split("1250000.0000", ".")[0])
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论