使用awk计算负指数

时间:2019-09-09 11:40:09

标签: awk

我正在使用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

知道为什么会这样吗?

1 个答案:

答案 0 :(得分:3)

10e-3是0.01,而不是0.001,因此答案正确

In [12]: 10e-3 == 10 * 10**-3 == 0.01                                           
Out[12]: True