保持最多3位小数而不进行任何舍入

时间:2017-02-02 10:26:43

标签: java string floating-point double bigdecimal

我有一个双倍,我想只保留3个小数位,但没有应用任何舍入。
例如。 92.36699应为92.366 我尝试了以下方法:

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

但这导致92.367
我怎么能做我需要的呢?

1 个答案:

答案 0 :(得分:4)

这不是“没有四舍五入”,而是DOWN rounding。只需set the roundingMode

  std::cout << n;

请注意DecimalFormat nf = new DecimalFormat("#0.000"); nf.setRoundingMode(RoundingMode.DOWN); String number = nf.format(originalNumber); FLOOR之间的差异 - 仅与负数相关。 DOWN负无穷大舍入,因此FLOOR将变为“-92.367”。