在bash中将浮点数转换为整数而不舍入
问题描述:
我有一组浮点数如2.45, 3.56, 54,64
等等的输入文件。我需要总结他们。在bash中将浮点数转换为整数而不舍入
看完这个article我知道没有直接的方法可以做到这一点。我无法围绕任何数字。
我记得有一种方法可以在没有四舍五入的情况下将int转换为int。像2.54 * 100 = 254.之后,我可以做所有的数学运算,并使用AWK将其返回到浮点视图。
我试图使用bc工具,但它不会以这种方式工作。
一样,(错误代码)
a=2.54
c=$((a * 100)) | bc -l
请,建议
不能重复,这是因为: 我要求和希望转换浮点数为整数,不比较2浮动数字。我需要对它进行总结,这与比较有所不同。此外,这个问题没有回答我的问题。 这里要问的一点是为特定问题得到最接近可能的答案。
答
你可以用awk,
$ echo '2.45, 3.56, 54,64' | awk -v FS=" *, *" '{for(i=1;i<=NF;i++){count = count+$i}}END{print count}'
124.01
的'bc'命令会更喜欢'BC -l 2015-02-10 21:59:20
......或者只是在bc中做数学运算:'bc -l 2015-02-10 22:00:24
......因此,被标记为重复的问题在它的表面上并不离谱,因为它相当公平 - 从那里给出的正确答案中获得显而易见的单字符变化('>'到'+'),甚至不用乘以100的解决方法。 – 2015-02-10 22:01:22