有什么办法可以取到距离最近的整数?

2019-06-05 13:12:13 +08:00
 Freeego
不是固定的向上或向下取整,而是距离最近的。比如 2.99 和 3.01 都取 3 的值。

除了比较这个浮点数距离左右两个整数的差值以外,有没有什么免判断的方法?
这个算法需要放在循环里,强迫症有点不能接受每次比较的做法。。
1451 次点击
所在节点    程序员
7 条回复
ccyuling
2019-06-05 13:53:49 +08:00
四舍五入?加 0.5 然后截取整数部分。
jifengg
2019-06-05 13:59:48 +08:00
看你怎么定义“最近”,比如 1.5 最近的是 1 还是 2 ?是 1 有 1 的做法,是 2 有 2 的做法(四舍五入)。
Freeego
2019-06-05 14:03:04 +08:00
@ccyuling 我傻了,就是这个,,
roscoecheung1993
2019-06-05 14:03:11 +08:00
这个操作统称 round...很多语言都有内置的函数吧?
ggicci
2019-06-05 14:03:25 +08:00
@jifengg 我也纳闷,0.5 咋办。。。黑人问号脸
firefffffffffly
2019-06-05 14:03:51 +08:00
Math.ceil
Math.floor
Math.round
fy1993
2019-06-05 14:07:59 +08:00
6 楼正解 ceil 取比这个数大的最近的整数 floor 比这个数小的最近的整数 round 取离的最近的整数

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/571094

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX