java中保留两位小数并要求四舍五入的方法

来源:百度知道 编辑:UC知道 时间:2024/05/24 12:01:20
本来我是会的,可是居然被要求不能用Math class, Formatter class, DecimalFormat class或其它任何class可以帮助format的…………彻底无语,这样叫我怎么做啊~~~那位java高手可以来帮帮我啊TAT~~谢谢了
楼下的答案我没看懂怎么回事啊……主要是那个判断………………

我给你提供一个思路,可能不太高明,不过得过。
把你的数×100,%5,判断,/100,搞定。

double d=2.345;
//格式化为String
String str=String.format("%.2f",d);
System.out.println(str);
//如果需要数字,可以再d = Double.parseDouble(str)

//////////////
BigDecimal bd=new BigDecimal("2.345");//建议使用String参数
BigDecimal bd_half_even = bd.setScale(2,RoundingMode.HALF_EVEN);
BigDecimal bd_half_up = bd.setScale(2,RoundingMode.HALF_UP);
System.out.println(bd_half_even);
System.out.println(bd_half_up);
//HALF_EVEN,HALF_UP是两种不同的四舍五入机制
//BigDecimal默认使用HALF_EVEN
//HALF_UP的效果就是经典的四舍五入
//HALF_EVEN是最科学的四舍五入,但结果和HALF_UP可能会不同