У меня есть сценарий, когда я получаю сумму в виде строки, и мне нужно ее округлить и отправить как строку, что я сделал:
public static String roundOff(String pfEmpWithoutRoundOff) {
try {
BigDecimal bigDecimal = new BigDecimal(pfEmpWithoutRoundOff);
int value = bigDecimal.intValue();
int length = String.valueOf(value).length();
BigDecimal rounded = bigDecimal.round(new MathContext(length, RoundingMode.HALF_UP));
return String.valueOf(rounded);
}
catch(ArithmeticException e)
{
e.printStackTrace();
}
return null;
}
Хорошо, я могу оптимизировать код. У меня есть 5 строк, и я могу сделать это 2-3 строки.
Ты имеешь ввиду:
return new BigDecimal(pfEmpWithoutRoundOff).setScale(0, RoundingMode.HALF_UP).toString();
?
Попробуйте это (если хотите), у него есть только 2 строки для округления String
:
public static String roundOff(String pfEmpWithoutRoundOff) {
Long roundVal = Math.round(Double.valueOf(pfEmpWithoutRoundOff));
return roundVal.toString();
}
new BigDecimal(pfEmpWithoutRoundOff).setScale(0, RoundingMode.HALF_UP)
как предложено Майклом.