http://www.361way.com/linux-bc-point-zero/4960.html
打开bc进入交互模式,我们键入scale=2; 1/3 回车,看到结果0.33前的0没有---注意此处保留小数点人2位 scale=2不能少,少了结果为是0 。
解决方法如下:
- #!/bin/bash
- #方法1
- res1=$(printf "%.2f" `echo "scale=2;1/3"|bc`)
- res2=$(printf "%.2f" `echo "scale=2;5/3"|bc`)
- #方法2 【popexizhi: 看来还是用awk 比bc 好一点 :)】
- #v=$(echo $big $small | awk '{ printf "%0.2f\n" ,$1/$2}')
- v1=$(echo 1 3 | awk '{ printf "%0.2f\n" ,$1/$2}')
- v2=$(echo 5 3 | awk '{ printf "%0.2f\n" ,$1/$2}')
- #方法3
- mem1=`echo "scale=2; a=1/3; if (length(a)==scale(a)) print 0;print a "|bc`
- mem2=`echo "scale=2; a=5/3; if (length(a)==scale(a)) print 0;print a "|bc`
- echo res1 is $res1
- echo res2 is $res2
- echo v1 is $v1
- echo v2 is $v2
- echo mem1 is $mem1
- echo mem2 is $mem2
没有评论:
发表评论