我有一个双倍,我想只保留3个小数位,但没有应用任何舍入。
例如。 92.36699
应为92.366
我尝试了以下方法:
DecimalFormat nf= new DecimalFormat("#0.000");
String number = nf.format(originalNumber);
但这导致92.367
我怎么能做我需要的呢?
答案 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”。