![](/img/trans.png)
[英]How to round off a float value so that it should not contain 0 after decimal
[英]ceil or round off after decimal value in Java
我有一个十进制值 46.58 我希望它像 46.60 或 46.44 它会像 46.40。 尝试了几种方法,例如数学类的回合 function 和 Bigdecimal,但它并没有在十进制值后四舍五入。
BigDecimal bigDecimal = new BigDecimal(value);
bigDecimal = bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP);
value = bigDecimal.doubleValue();
double value = Math.round(decimalValue);
您首先需要使用标准的半向上RoundingMode
到小数点后 1 位,然后再次将比例增加到 2:
BigDecimal bigDecimal = new BigDecimal("46.58");
bigDecimal = bigDecimal.setScale(1, RoundingMode.HALF_UP); // bigDecimal == 46.6
bigDecimal = bigDecimal.setScale(2, RoundingMode.UNNECESSARY); // bigDecimal == 46.60
以下解决方案对我有用。
BigDecimal bigDecimal = new BigDecimal("46.58");
bigDecimal = bigDecimal.setScale(1, RoundingMode.HALF_UP);
bigDecimal = bigDecimal.setScale(2, RoundingMode.UNNECESSARY);
double d = bigDecimal.doubleValue();
String valstr = String.format("%.2f%n", d);
System.out.println(valstr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.