【发布时间】:2020-04-22 16:21:16
【问题描述】:
我正在处理一个包含一系列不同精度的十进制值的文件。 我需要将这些数字除以 100,不需要四舍五入。
awk '{val = $1 / 100; print val}' input_file.txt
输入文件:
0.123456789012
0.123456789012345
0.12345678901234567
输出:
0.00123457
0.00123457
0.00123457
我不想对结果进行四舍五入并得到以下输出:
0.00123456789012
0.00123456789012345
0.0012345678901234567
提前致谢
【问题讨论】:
-
awk 数字不是十进制数,而是二进制浮点数。使用
awk -v OFMT=%.17g '...',您可能会获得更高的精度,但正是您期望的输出。如果所有数字都是0.XXXX的形式,你可以简单地sub(/\./, ".00", $1);-)