在
java中,我试图找到一个有效的方法来根据条件将BigDecimal转换为两位小数,Up或Down.
IF condition true then:
12.390 ---> 12.39
12.391 ---> 12.40
12.395 ---> 12.40
12.399 ---> 12.40
If condition false then:
12.390 ---> 12.39
12.391 ---> 12.39
12.395 ---> 12.39
12.399 ---> 12.39
什么是最有效的方式来完成这个?
解决方法
public static BigDecimal round(BigDecimal d,int scale,boolean roundUp) {
int mode = (roundUp) ? BigDecimal.ROUND_UP : BigDecimal.ROUND_DOWN;
return d.setScale(scale,mode);
}
round(new BigDecimal("12.390"),2,true); // => 12.39
round(new BigDecimal("12.391"),true); // => 12.40
round(new BigDecimal("12.391"),false); // => 12.39
round(new BigDecimal("12.399"),false); // => 12.39
