将bc刻度向上舍入而不是用scale或printf向下舍入

时间:2016-05-24 03:35:02

标签: bash shell expression sh bc

我正在使用bc和scale来评估表达式,但是我希望它能够向上舍入而不是向下舍入。最简单的方法是什么?

$ read exp
5+50*3/20 + (19*2)/7
$ echo "scale=3; $exp" | bc -l
17.928

但我想要的答案是17.929

我更喜欢将答案作为答案的附录而不是不同的答案。感谢

以下是我尝试过的一些事情:

$ echo "scale=4; ($exp+0.0005)" | bc -l
17.9290
$ echo "scale=3; ($exp+0.0005)" | bc -l
17.9285

但是我希望17.929作为答案,最后没有归零。

1 个答案:

答案 0 :(得分:3)

使用scaling factor printf 3 scaling factor bc 4作为0.0005并添加printf "%.3f\n" $( echo "scale=4; $exp+0.0005" | bc -l ) 来解决此问题表达式:

coords=SkyCoord(coords.ra.reshape(y.shape),coords.dec.reshape(y.shape))