round公式避免浮点误差
wils
Lv.2潜力创作者
曾经发帖讨论过round的浮点精度的问题
https://bbs.wps.cn/topic/31968
以前用多套一层round的办法,其实是有问题的
为了解决5结尾时的精度,反倒先要round一次浪费了精度
下面的方法是某大佬解决宏里round精度问题的方法,我找不到帖子了,这里只是分享出来
| 🔔 | =ROUND(TEXT(1-0.9975,"0.##############"),3) |
其实就是套一层TEXT公式,好处是正确消除了浮点误差
恰同学少年大佬的研究表明,上面的方法也不保险
那么还是得用js库做十进制运算或者调用bc才行
在大佬的提醒下,终于发现套一层TEXT这个公式有个限制,就是井号的个数不能超过精度,如果是1-0.91785可以用15个井号,1000-999.91785只能用13个井号
现在的想法是,别太长,超过你需要的精度长度10来个井号
而且幸好它不是四舍五入,如果是精确的1.149999999999这个数取1位,它并不会进位,算是是好事
Lv.2潜力创作者
Lv.2潜力创作者