在 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
我有一个输入文件,其中包含一组浮点数,如 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