四舍五入
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了四舍五入相关的知识,希望对你有一定的参考价值。
我正在处理一个包含一系列不同精度的十进制值的文件,我需要将这些数字除以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 '{d=length($1); printf "%."d"f
", $1/100}' file
0.00123456789012
0.00123456789012345
0.0012345678901234567
这也应该涵盖大于1的数字。
$ awk '{d=length($1); if($1>1) d+=1-length(int($1)); printf "%."d"f
", $1/100}' file
可能需要调整负数......
另一答案
你能不能试试下面的命令。
awk '{sub(/./,".00")} 1' Input_file
用OP的原始命令。
awk '{val = $1 / 100; sub(/./,".00",val);print val}' input_file.txt
以上是关于四舍五入的主要内容,如果未能解决你的问题,请参考以下文章
两个BigDecimal数值相除取整数,不要求四舍五入,代码怎么写