为什么这段将字符串转换为整数的 Golang 代码失败了?

huangapple go评论85阅读模式
英文:

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

英文:

Atoi works only for strings that can be parsed as integers.

What you need is 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])

huangapple
  • 本文由 发表于 2013年10月10日 01:05:49
  • 转载请务必保留本文链接:https://go.coder-hub.com/19278379.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定