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

问个小学数学题....

  •  
  •   Eyon · 2021-03-21 19:10:40 +08:00 · 1188 次点击
    这是一个创建于 1103 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我们知道,JS 有个计算精度问题,比如 1.7-1.3=0.3999999999
    一般情况下,我们可以通过 ( 1.7*10-1.3*10)/10 来得出正确结果
    但是现在有个场景:

    1.7 这个数字不能动,只能改动 1.3,如何能计算出正确结果?
    比如 1.7-1.3*100=-128.3,这个 128.3 怎么找出一个和正确结果 0.4 挂上钩的规律。
    5 条回复    2021-03-23 11:02:37 +08:00
    Mutoo
        1
    Mutoo  
       2021-03-21 19:33:38 +08:00
    Math.round((1.7-1.3*100+1.3*99)*100)/100
    Eyon
        2
    Eyon  
    OP
       2021-03-21 19:38:49 +08:00
    1 、前提是不能用 math,2 、1.3*99 又有可能精度问题了
    chocovon
        3
    chocovon  
       2021-03-21 19:40:44 +08:00
    ( 1.7*10-1.3*10)/10 跟 toFixed(1)似乎是一回事?
    Eyon
        4
    Eyon  
    OP
       2021-03-21 20:30:50 +08:00
    哎,看来无解啊....
    这真是一个尴尬的 Bug

    操作 MongoDB 数据库,利用了 inc 操作符实现数据库中某值的自增 /自减操作,然后再遇上小数点,就无解了....
    lllllliu
        5
    lllllliu  
       2021-03-23 11:02:37 +08:00
    1.7 - 1.3 => 1.7 -1 = 0.7 => (0.7*100 - 0.3*100 ) /100 = 0.4
    1.7  没动吧?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5337 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 29ms · UTC 09:03 · PVG 17:03 · LAX 02:03 · JFK 05:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.