【发布时间】:2015-04-10 19:22:46
【问题描述】:
我有一个输入文件,其中包含一组浮点数,例如2.45, 3.56, 54,64等等。我需要总结它们。
阅读此article 后,我明白没有直接的方法可以做到这一点。我不能四舍五入任何数字。
我记得有一种方法可以在不四舍五入的情况下转换为 int。就像 2.54 * 100 = 254。之后我可以做所有的数学运算并使用 AWK 将其返回到浮动视图。
我试图使用 bc 工具,但它不会以这种方式工作。
喜欢,(错误代码)
a=2.54
c=$((a * 100)) | bc -l
请推荐
不重复,因为: 我正在询问并希望将浮点数转换为整数,而不是比较 2 个浮点数。我需要对它求和,它与比较不同。此外,这个问题并没有回答我的问题。 在这里询问的目的是为特定问题获得最接近的答案。
【问题讨论】:
-
bc命令将更像bc -l <<<"2.56 * 100",而不是您在问题中给出的(它在 bash 中进行数学运算,而不是在 bc 中)。 -
...或者,只是在公元前做数学:
bc -l <<<"2.56 + 3.41" -
...因此,被标记为重复的问题表面上并不令人发指,因为从答案中可以看出这是一个相当明显的单字符变化(
>到+)给正确的一个,甚至不用担心乘以 100 的解决方法。 -
这个副本可能是更好的原件:Floating-point arithmetic in UNIX shell script
标签: bash scripting floating-point int