问个小学数学题....

2021-03-21 19:10:40 +08:00
 Eyon
我们知道,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 挂上钩的规律。
1214 次点击
所在节点    问与答
5 条回复
Mutoo
2021-03-21 19:33:38 +08:00
Math.round((1.7-1.3*100+1.3*99)*100)/100
Eyon
2021-03-21 19:38:49 +08:00
1 、前提是不能用 math,2 、1.3*99 又有可能精度问题了
chocovon
2021-03-21 19:40:44 +08:00
( 1.7*10-1.3*10)/10 跟 toFixed(1)似乎是一回事?
Eyon
2021-03-21 20:30:50 +08:00
哎,看来无解啊....
这真是一个尴尬的 Bug

操作 MongoDB 数据库,利用了 inc 操作符实现数据库中某值的自增 /自减操作,然后再遇上小数点,就无解了....
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  没动吧?

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

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

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

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

© 2021 V2EX