我正在使用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
知道为什么会这样吗?
答案 0 :(得分:3)
10e-3是0.01,而不是0.001,因此答案正确
In [12]: 10e-3 == 10 * 10**-3 == 0.01
Out[12]: True