bc 将数字作为整数处理:
# echo "100/3" | bc
33
Run Code Online (Sandbox Code Playgroud)
bc -l 将数字作为浮点对象处理:
# echo "100/3" | bc -l
33.33333333333333333333
Run Code Online (Sandbox Code Playgroud)
有没有办法限制小数点后的位数?
chr*_*tis 99
设置scale特殊变量:
$ echo "scale=2; 100/3" | bc
33.33
Run Code Online (Sandbox Code Playgroud)
SAG*_*air 16
scale仅适用于除法;如果一些极客在乘法中需要它,那么您可以通过使用字符串操作来实现这一点。说如果你需要乘法32 * 0.60,答案是19.20。如果你需要单独得到它 19 来回答你可以通过不同的方法得到它。
使用字符串操作
$ S=$(echo "32*.60" | bc ) ; echo ${S%.*}
19
Run Code Online (Sandbox Code Playgroud)
字符串操作语法:${Variable%pattern},这将删除 之后的短匹配模式%。有关更多字符串操作的详细信息,请参阅高级 Bash 脚本指南。
使用Scale如所述**chronitis**
$ echo "scale=0; 32*60/100" | bc
19
Run Code Online (Sandbox Code Playgroud)为了去掉尾随的 0,除了字符串操作之外,还可以除以 1。
$ echo "0.232 * 1000" | bc
232.000
$ echo "0.232 * 1000 / 1" | bc
232
Run Code Online (Sandbox Code Playgroud)小智 9
您还可以使用 printf 命令将结果四舍五入到小数点后 3 位
# printf "%.3f\n" $(echo "100/3" | bc -l)
3.333
Run Code Online (Sandbox Code Playgroud)
小智 5
除了之前的回答
echo "scale=2; 1.0150876" | bc
Run Code Online (Sandbox Code Playgroud)
退货
1.0150876
Run Code Online (Sandbox Code Playgroud)
添加数学运算以仅获得 2 个十进制数字 - (NUMBER*100)/100
echo "scale=2; (1.0150876 * 100) / 100" | bc
Run Code Online (Sandbox Code Playgroud)
现在返回
1.01
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
112680 次 |
| 最近记录: |