V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Freeego
V2EX  ›  程序员

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

  •  
  •   Freeego · 2019-06-05 13:12:13 +08:00 · 1426 次点击
    这是一个创建于 1758 天前的主题,其中的信息可能已经有所发展或是发生改变。
    不是固定的向上或向下取整,而是距离最近的。比如 2.99 和 3.01 都取 3 的值。

    除了比较这个浮点数距离左右两个整数的差值以外,有没有什么免判断的方法?
    这个算法需要放在循环里,强迫症有点不能接受每次比较的做法。。
    ccyuling
        1
    ccyuling  
       2019-06-05 13:53:49 +08:00
    四舍五入?加 0.5 然后截取整数部分。
    jifengg
        2
    jifengg  
       2019-06-05 13:59:48 +08:00
    看你怎么定义“最近”,比如 1.5 最近的是 1 还是 2 ?是 1 有 1 的做法,是 2 有 2 的做法(四舍五入)。
    Freeego
        3
    Freeego  
    OP
       2019-06-05 14:03:04 +08:00
    @ccyuling 我傻了,就是这个,,
    roscoecheung1993
        4
    roscoecheung1993  
       2019-06-05 14:03:11 +08:00
    这个操作统称 round...很多语言都有内置的函数吧?
    ggicci
        5
    ggicci  
       2019-06-05 14:03:25 +08:00
    @jifengg 我也纳闷,0.5 咋办。。。黑人问号脸
    firefffffffffly
        6
    firefffffffffly  
       2019-06-05 14:03:51 +08:00
    Math.ceil
    Math.floor
    Math.round
    fy1993
        7
    fy1993  
       2019-06-05 14:07:59 +08:00
    6 楼正解 ceil 取比这个数大的最近的整数 floor 比这个数小的最近的整数 round 取离的最近的整数
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   983 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 20:14 · PVG 04:14 · LAX 13:14 · JFK 16:14
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.