V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
a498636530
V2EX  ›  问与答

iOS 高精度数据 精度丢失

  •  
  •   a498636530 · 2018-10-12 17:12:05 +08:00 · 1665 次点击
    这是一个创建于 2266 天前的主题,其中的信息可能已经有所发展或是发生改变。

    ▿ Optional<double></double>

    • some : 1876543210.0

    NSDecimalNumber(value: num as! Double) 转换成 NSDecimal 类型 数据变成 1876543209.999999744 精度丢失

    2 条回复    2018-10-12 17:18:41 +08:00
    finab
        1
    finab  
       2018-10-12 17:15:07 +08:00
    打印出来会丢失, 参与计算没事
    打印或转成字符串的时候保留有效小数位 四舍五入 round 一下吧
    a498636530
        2
    a498636530  
    OP
       2018-10-12 17:18:41 +08:00
    打印出来精度丢失 高精度处理 保留 8 位 8 位以后直接处理掉( NSDecimalNumber.RoundingMode.bankers ) 就变成 1876543209.99999974 展示出来 精度丢失
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   991 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 20:59 · PVG 04:59 · LAX 12:59 · JFK 15:59
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.