import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class KeepTwoFraction {//保留两位小数
public static void main(String[] args) {
// double数据保留两位小数
// 第一种方法:使用 String.format(String format, Object... args)
System.out.println("StringFormat:" + String.format("%.2f", 0.985));
// 第二种方法:DecimalFormat的父类是NumberFormat
DecimalFormat df = new DecimalFormat("#.00");
System.out.println("DecimalFormat:" + df.format(0.985));
// 第三种方法:
BigDecimal bg = new BigDecimal(0.985).setScale(2, BigDecimal.ROUND_HALF_UP);
double doubleValue = bg.doubleValue();
System.out.println("BigDecimalRoundHalfUp:" + doubleValue);
// 第四种方法:
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println("NumberFormat:"+nf.format(0.985));
}
}
结果是:说明除了第一种方法能做到真正的四舍五入外,其它三种方法要>5才可以进位
StringFormat:0.99
DecimalFormat:.98
BigDecimalRoundHalfUp:0.98
NumberFormat:0.98