Java# Java中double保留小数位的方法

Posted LRcoding

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java# Java中double保留小数位的方法相关的知识,希望对你有一定的参考价值。

需求:将 double 的结果保留2位小数

返回结果是 double 的:

  • 四舍五入

    double d = 123.456;
    d = (double) Math.round(d * 100) / 100;
    
  • 其他形式

    double d = 123.455;
    BigDecimal b = new BigDecimal(d+"");  // 直接传入 float或 double,会损失精度
    d = b.setScale(2, BigDeclimal.ROUND_HALF_UP).doubleValue();  // 123.46
    // ROUND_HALF_UP  四舍五入
    // ROUND_HALF_DOWN  五舍六入     123.45
    // ROUND_UP  直接进位            123.46
    // ROUND_DOWN  直接丢弃末尾       123.45
    

返回结果是 String 的:

  • #.00 保留后两位,后面的直接舍弃

    double d = 123.455;
    DecimalFormat df = new DecimalFormat("#.00");
    String str = df.format(d);  // 123.45
    
  • %.2f 保留后两位,四舍五入

    double d = 123.456;
    String.format("%.2f", d);  // 123.46
    
  • RoundingMode.HALF_DOWN 五舍六入,负数先取绝对值,再五舍六入,然后再变为负数

    RoundingMode.HALF_UP 四舍五入,负数先取绝对值,再四舍五入,然后再变为负数

    double d = 123.456;
    NumberFormat nf = NumberFormat.getNumberInstance();
    // 保留两位小数
    nf.setRoundingMode(RoundingMode.UP);
    

以上是关于Java# Java中double保留小数位的方法的主要内容,如果未能解决你的问题,请参考以下文章

Java中Double保留后小数位的几种方法

java使double保留两位小数的多方法 java保留两位小数

Java中Double保留后小数位的几种方法

使double保留两位小数的多方法 java保留两位小数

java中double类型如果小数点后为零显示整数否则保留

java、怎样简便的保留小数点后两位。