【发布时间】:2017-05-20 22:19:25
【问题描述】:
我是 Go 的新手,但在将人类身高从英尺/英寸转换为厘米时遇到了问题。
如何以有效的方式将类似于 5'2'' 的字符串转换为厘米 int?
编辑: 经过更多测试后,我最终得到了这个解决方案。如何改进?
height := strings.Split("5'2''", "'")
heightfeet,err :=strconv.ParseFloat(height[0],10)
heightinch,err :=strconv.ParseFloat(height[1],10)
heightcm :=heightfeet*30.48+heightinch*2.54
【问题讨论】:
-
@CeriseLimón 我用一个可行的解决方案更新了这个问题。不过,它可能需要一些改进。欢迎提出任何建议。
-
我不熟悉 Go,但是根据它遵循的操作顺序,请记住 ((heightfeet*30.48) + (heightinch*2.54)) 与 (heightfeet*30.48) 不同+高度英寸* 2.54)。事实上,我相信你的代码会输出 392.XX cm,也就是大约 12 英尺。
-
@Astor139 输出实际上是 157,48 所以我认为它可以这样。乘法是在加法之前计算的?
-
@Kaah:一个测试用例:
"2''"或两英寸。 -
@peterSO 是的,那会毁了它。看起来它也会毁掉 AndreaM16。也许它超出了我的特定问题的范围,因为输入是人类身高。我会在问题中说明这一点。但我同意处理这种情况也是一种好习惯。
标签: go type-conversion