栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

转到:使用乘数将float64转换为int

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

转到:使用乘数将float64转换为int

转到规格:转化:

数字类型之间的转换

将浮点数转换为整数时,将舍弃小数(截断为零)。

因此,基本上,当您将浮点数转换为整数时,仅保留整数部分。

如果您只是想避免因用有限位表示而引起的错误,请在将

0.5
数字转换为之前添加到数字
int
。不需要外部库或函数调用(来自标准库)。

由于

float -> int
转换 不是舍入 而是 保留整数部分 ,这将为您提供所需的结果。考虑到可能更大或更小的表示形式:

1002.9999 + 0.5 = 1003.4999;     integer part: 10031003.0001 + 0.5 = 1003.5001;     integer part: 1003

所以只需写:

var f float64 = 1.003fmt.Println(int(f * 1000 + 0.5))

要将其包装到函数中:

func toint(f float64) int {    return int(f + 0.5)}// Using it:fmt.Println(toint(f * 1000))

在Go Playground上尝试一下。

注意:

当您使用负数时请小心!例如,如果您的值为

-1.003
,则可能希望结果为
-1003
。但是,如果添加
0.5
到它:

-1002.9999 + 0.5 = -1002.4999;     integer part: -1002-1003.0001 + 0.5 = -1002.5001;     integer part: -1002

因此,如果您有负数,则必须:

  • 减去
    0.5
    而不是加
  • 或从结果中
    0.5
    减去
    1

将其整合到我们的辅助函数中:

func toint(f float64) int {    if f < 0 {        return int(f - 0.5)    }    return int(f + 0.5)}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/471137.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号