疯狂java


您现在的位置: 疯狂软件 >> 新闻资讯 >> 正文

Java保留两位小数


 

       采用四舍五入的方式 :

  import java.math.BigDecimal;

  import java.text.DecimalFormat;

  import java.text.NumberFormat;

  public class format {

  double f = 111231.5585;

  public void m1() {

  BigDecimal bg = new BigDecimal(f);

  double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();

  System.out.println(f1);

  }

  /**

  * DecimalFormat转换最简便

  */

  public void m2() {

  DecimalFormat df = new DecimalFormat("#.00");

  System.out.println(df.format(f));

  }

  /**

  * String.format打印最简便

  */

  public void m3() {

  System.out.println(String.format("%.2f", f));

  }

  public void m4() {

  NumberFormat nf = NumberFormat.getNumberInstance();

  nf.setMaximumFractionDigits(2);

  System.out.println(nf.format(f));

  }

  public static void main(String[] args) {

  format f = new format();

  f.m1();

  f.m2();

  f.m3();

  f.m4();

  }

  }

  结果:

  111231.56

  111231.56

  111231.56

  111,231.56

  采用非四舍五入的方式 :

  [java]

  public static void main(String[] args) {

  double finalMoney = 27.989;

  System.out.println(finalMoney);

  DecimalFormat formater = new DecimalFormat();

  formater.setMaximumFractionDigits(2);

  formater.setGroupingSize(0);

  formater.setRoundingMode(RoundingMode.FLOOR);

  System.out.println(formater.format(finalMoney));

  }

  public static void main(String[] args) {

  double finalMoney = 27.989;

  System.out.println(finalMoney);

  DecimalFormat formater = new DecimalFormat();

  formater.setMaximumFractionDigits(2);

  formater.setGroupingSize(0);

  formater.setRoundingMode(RoundingMode.FLOOR);

  System.out.println(formater.format(finalMoney));

  }

  结果

  27.989

  27.98