在 bash 中将浮点数转换为整数而不四舍五入

Convert floating point numbers to integer without rounding in bash

我有一个输入文件,其中包含一组浮点数,如 2.45, 3.56, 54,64 等等。我需要总结它们。

阅读这篇 article 我明白没有直接的方法可以做到这一点。我无法舍入任何数字。

我记得有一种方法可以将 in 转换为 int 而无需四舍五入。就像 2.54 * 100 = 254。之后我可以做所有的数学运算,然后 return 它可以使用 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