zoukankan      html  css  js  c++  java
  • java 四舍五入 保留n为数


    double x1 = 0.026;
    String format = String.format("%.2f", x1);
    System.out.println(format);

    String format = String.format("%.nf", x1);

    n : 表示保留的位数(四舍五入)

    package com.clzhang.sample;

    import java.math.BigDecimal;
    import java.math.RoundingMode;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;

    public class DoubleTest {

    /**
    * 保留两位小数,四舍五入的一个老土的方法
    * @param d
    * @return
    */
    public static double formatDouble1(double d) {
    return (double)Math.round(d*100)/100;
    }


    /**
    * The BigDecimal class provides operations for arithmetic, scale manipulation, rounding, comparison, hashing, and format conversion.
    * @param d
    * @return
    */
    public static double formatDouble2(double d) {
    // 旧方法,已经不再推荐使用
    // BigDecimal bg = new BigDecimal(d).setScale(2, BigDecimal.ROUND_HALF_UP);


    // 新方法,如果不需要四舍五入,可以使用RoundingMode.DOWN
    BigDecimal bg = new BigDecimal(d).setScale(2, RoundingMode.UP);

    return bg.doubleValue();
    }

    /**
    * NumberFormat is the abstract base class for all number formats.
    * This class provides the interface for formatting and parsing numbers.
    * @param d
    * @return
    */
    public static String formatDouble3(double d) {
    NumberFormat nf = NumberFormat.getNumberInstance();

    // 保留两位小数
    nf.setMaximumFractionDigits(2);


    // 如果不需要四舍五入,可以使用RoundingMode.DOWN
    nf.setRoundingMode(RoundingMode.UP);


    return nf.format(d);
    }


    /**
    * 这个方法挺简单的。
    * DecimalFormat is a concrete subclass of NumberFormat that formats decimal numbers.
    * @param d
    * @return
    */
    public static String formatDouble4(double d) {
    DecimalFormat df = new DecimalFormat("#.00");


    return df.format(d);
    }


    /**
    * 如果只是用于程序中的格式化数值然后输出,那么这个方法还是挺方便的。
    * 应该是这样使用:System.out.println(String.format("%.2f", d));
    * @param d
    * @return
    */
    public static String formatDouble5(double d) {
    return String.format("%.2f", d);
    }

    public static void main(String[] args) {
      double d = 12345.67890;

      System.out.println(formatDouble1(d));
      System.out.println(formatDouble2(d));
      System.out.println(formatDouble3(d));
      System.out.println(formatDouble4(d));
      System.out.println(formatDouble5(d));
    }

    }

     
  • 相关阅读:
    MySQL数据库的主从同步
    学习Java必看的Java书籍(高清中文最新版附下载链接)
    servlet重点知识总结
    JUnit & JMockit单元测试
    mongodb重点知识总结
    Quartz学习总结
    IDEA使用总结
    bat脚本知识总结
    linux shell脚本相关知识
    SpringMVC重点知识总结
  • 原文地址:https://www.cnblogs.com/lxn0216/p/7843619.html
Copyright © 2011-2022 走看看