ceil or round off after decimal value in Java

yogesh chouhan :

I have a decimal value 46.58 i want it to be like 46.60 or for 46.44 it will be like 46.40. Tried several ways like like Math class's round function and Bigdecimal but it is not roudning off after decimal values.

BigDecimal bigDecimal = new BigDecimal(value);
bigDecimal = bigDecimal.setScale(2,BigDecimal.ROUND_HALF_UP);
value = bigDecimal.doubleValue();
double value = Math.round(decimalValue);
dpr :

You first need to round to 1 decimal place using standard half-up RoundingMode and afterwards increase the scale to 2 again:

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

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=477515&siteId=1