Go 中从 float32 转换为 int
我尝试了多种方法将浮点数转换为整数,我想要的是截断浮点数,这样我只得到整数部分。 我正在使用
x := float32(3.1)
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3
But if x is 3.9, y will变成 4 因为这个函数将对 float32 进行四舍五入而不是截断。 有没有一种方法可以截断而不是四舍五入?如果是这样,是否可以在不涉及字符串的情况下做到这一点? (就像在 C 中将 float 转换为 int 一样)
I have tried several ways to cast a float to an int, what I want is to truncate a float so I only get the integer part.
I'm using
x := float32(3.1)
y,_ := strconv.Atoi((strconv.Ftoa32(x,'f',0))) //y becomes 3
But if x is 3.9, y will become 4 because this function will round the float32 instead of truncating.
Is there a way of truncating instead of rounding? and if so, is it possible to do it without involving strings? (like casting a float to int in C)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
只需使用
int()
:它会根据需要生成
3
,而无需使用字符串转换等。Just use
int()
:Which produces
3
as needed, without having to use string conversions or the like.