2015-02-10 72 views
0

我有一组浮点数如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浮动数字。我需要对它进行总结,这与比较有所不同。此外,这个问题没有回答我的问题。 这里要问的一点是为特定问题得到最接近可能的答案。

+0

的'bc'命令会更喜欢'BC -l <​​<< “2.56 * 100”'比你在你的问题给予了什么(它的数学在bash本地,而不是在BC)。 – 2015-02-10 21:59:20

+0

......或者只是在bc中做数学运算:'bc -l <​​<<“2.56 + 3.41”' – 2015-02-10 22:00:24

+0

......因此,被标记为重复的问题在它的表面上并不离谱,因为它相当公平 - 从那里给出的正确答案中获得显而易见的单字符变化('>'到'+'),甚至不用乘以100的解决方法。 – 2015-02-10 22:01:22

回答

0

你可以用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