- 主题:这个结果为什么不对
bc 的 scale 就不会四舍五入,它就是直接按位数去截断结果
至于第二个结果为啥是正确的,你可以计算:
-105 + 7.500 + 51.571
【 在 eskimo1024 的大作中提到: 】
: 不懂 bc 的逻辑,换 awk 解决的
: awk "BEGIN {printf \"%.3f\n\", $line}"
: bc 的四舍五入逻辑有点怪,奇数不进位,偶数进位。
: ...................
--
FROM 117.152.202.*
【 在 eskimo1024 的大作中提到: 】
: 你这个例子的计算结果是对的
: 有限小数,结果是精确的,bc 会忽略 scale 变量。
你没有明白我的意思
bc 根本不四舍五入,在你前面给的例子中,它的做法是对每一部分进行 scale,然后再加和……我给的那三项,就是你的那个式子中的三项的 scale 后的结果
--
FROM 117.152.202.*
【 在 eskimo1024 的大作中提到: 】
: 标 题: Re: 这个结果为什么不对
: 发信站: 水木社区 (Sat Jul 9 21:42:28 2022), 站内
:
: bc 计算结果没什么道理。我再给一组数据:
: bc.txt:
:
: scale=3; -1/17
: scale=20; -1/17
: /*
: -.058
scale 根本就不四舍五入,它就是直接截断
: -.05882352941176470588
: */
:
: scale=3; 1 - 1/17
这个的计算过程是 1 - 0.058 = 0.942,而不是先算出来 0.94117 再四舍五入得 0.941
: scale=20; 1 - 1/17
: /*
: .942
: .94117647058823529412
: */
:
: scale=3; 1/3 - 1/17
: scale=20; 1/3 - 1/17
: /*
: .275
: .27450980392156862745
: */
:
: scale=3; -1/3 - 1/17
: scale=20; -1/3 - 1/17
: /*
: -.391
: -.39215686274509803921
: */
:
: scale=3; -1/3 + 1/17
: scale=20; -1/3 + 1/17
: /*
: -.275
: -.27450980392156862745
: */
:
: --
:
: ※ 修改:·eskimo1024 于 Jul 9 21:43:29 2022 修改本文·[FROM: 14.112.218.*]
: ※ 来源:·水木社区 mysmth.net·[FROM: 14.112.218.*]
--
修改:eskimo1024 FROM 14.112.218.*
FROM 117.152.202.*
【 在 eskimo1024 的大作中提到: 】
: 做化学实验,课本里讲的。
是的,这是化学分析中最常用的保留有效数字的做法
--
FROM 117.152.202.*