1

BigDecimal を小数点以下 2 桁に丸めたいのですが、round メソッドを使用すると、2 倍に丸められないようです。

BigDecimal.new('43382.0249').round(2).to_s('F').should == '43382.03'

しかし、代わりに出力が得られます: 43382.02

私は利用可能な他のすべての丸めモードも試しましROUND_UPたが、仕事をしているようですが、他の丸めシナリオを台無しにします.

4

3 に答える 3

3

問題の数値は実際には .03 ではなく .02 に丸められるべきであるように思われます -- ここには実際の問題はないと思います。0.024 を 0.02 に丸める

于 2012-04-10T14:47:02.093 に答える
0

43382.0249 を 42283.03 にしたい場合は、最初に 0.001 を追加します 670.1541 を 670.16 にしたい場合は、最初に 0.001 を追加します

切り捨て/切り上げ < 0.005、< 0.006 が必要なようです。

注意: 数値が負になる可能性がある場合は、-0.001 です。

とにかく遊んでみてください。ただし、一貫性がある限り、基本的な考え方は機能するはずです。

于 2012-04-10T14:46:51.460 に答える