我正在使用 awk 来缩放数字,但 awk 给出了错误的答案。举个例子: VALUE=-565 且 SCALE=10E-3
awk -v a=-565 -v b=10E-3 'BEGIN { print (a * b) } '
Answer: -5.65
这是错误的。
如果我使用 ^ 而不是 E 我得到:
awk -v a=-565 -v b=10^-3 'BEGIN { print (a * b) } '
Answer: -5650
这也是错误的。
但是,如果我将 10E-3 更改为 0.001,我会得到正确的答案:
awk -v a=-565 -v b=0.001 'BEGIN { print (a * b) } '
Answer: -0.565
我尝试强制 awk 打印浮点,但我仍然得到错误的答案:
awk -v a=-565 -v b=10E-3 'BEGIN { printf "%f\n", (a * b) } '
Answer: -5.650000
知道为什么它会这样吗?
最佳答案
10e-3 是 0.01,而不是 0.001,所以答案是正确的
In [12]: 10e-3 == 10 * 10**-3 == 0.01
Out[12]: True
关于awk - 使用awk计算负指数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57853299/