awk - 使用awk计算负指数

标签 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

知道为什么它会这样吗?

最佳答案

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/

相关文章:

python - 如何将数字更改为科学数字并获得最小值(科学数字格式)

linux - grep 键值对和格式的值

date - getline,awk和日期(格式化日期)

linux - 带有多个字符串和通配符的 Grep

arrays - 将数组传递给 awk,其中包含需要打印的列号

linux - 目标是从显示信息中提取视频驱动程序版本,然后将其与支持的版本列表进行比较

awk - OFS为什么不起作用?

regex - Bash AWK 和正则表达式应用于特定列

regex - 使用 awk 根据单词求和数字

java - 集成对 jar 文件的调用 |切| awk 和一个 java 程序成为一个统一的进程