2017-02-02 6 views
0

を使用せずに、小数点以下3桁のみを保持したい場合は、を四捨五入します。
など。丸めを行わずに3小数点以下を保持する

DecimalFormat nf= new DecimalFormat("#0.000"); 
String number = nf.format(originalNumber); 

をしかし、これは私が必要なものを行うことができますどのように92.367
になり:92.3669992.366
である必要があり、私は次のことを試してみましたか?

+0

'((ori​​ginalNumber * 1000)/ 1)/ 1000.0' – IQV

答えて

4

これは「丸め」ではなく、DOWN roundingです。単にset the roundingModeです。

DecimalFormat nf = new DecimalFormat("#0.000"); 
nf.setRoundingMode(RoundingMode.DOWN); 
String number = nf.format(originalNumber); 

FLOORDOWNとの差 - 負の数にのみ関連。 FLOORラウンドの方向へ負の無限したがって-92.36699は "-92.367"になります。

+0

'RoudingMode.FLOOR'が常に負の無限大に丸められるので、切り捨ては正しく' RoundingMode.DOWN'で行われます。 – paper1111

+0

@ paper1111ちょうどメモを追加しています。デフォルトでどちらを使用するかについての公正なポイント。 –

関連する問題