如何在bc中显示小数点前的零?


9
echo "scale=3;1/8" | bc

显示.125在屏幕上。如何显示0.125输出结果是否小于一?

Answers:


9

bc不能在小数点前输出零,可以使用printf

$ printf '%.3f\n' "$(echo "scale=3;1/8" | bc)"
0.125

更易理解的命令。;-)
Kevin Dong

1

您可以通过管道传输到awk

echo "scale=3;1/8" | bc | awk '{printf "%.3f\n", $0}'

或者您可以只使用awk

awk '{printf "%.3f\n", 1/8}' <<< ""

输出量

0.125

我们为什么要这样做<<< ""
凯文·董

@KevinDongNaiJia awk需要一个输入文件才能工作,这将创建并为空here string。因此,基本上可以假装在末尾有一个空文件,否则awk将从stdin中读取。更多信息在此

@cuonglm,这样您可以,尽管请不要编辑我的答案。

@cuonglm Petty downvote,太好了!

1
@JID:并非所有外壳程序都支持此处的字符串,您需要为其他查看者指定它。使用BEGIN块可以防止您遇到麻烦,并且它是可移植的。
cuonglm
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.