package com.sinosoft.demo.controller;
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Computer {
//java中如何使Double类型的数值保留两位小数问题
public static void main(String[] args) {
Double dou = 3000.533;
dou = (double)Math.round(dou*100)/100;
System.out.println("1. "+dou);
Double dou1 = 3000.529888;
dou1 = (double)Math.round(dou1*10000)/10000; //同理保留四位小数就不用说了吧
System.out.println("2. "+dou1);
//二、第二种方法
double d = 111231.5585;
BigDecimal b = new BigDecimal(d);
double df = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("3. "+df);
//三、第三种方法
double a=10000;//要用double型,要不a/b永远得0;
double m=20000;
NumberFormat nbf=NumberFormat.getInstance();
nbf.setMinimumFractionDigits(2);
String c = nbf.format(a/m);
System.out.println("4. "+c);
/**
* DecimalFormat转换最简便
*/
double f = 111231.5585;
DecimalFormat df1 = new DecimalFormat("#.00");
System.out.println("5. "+df1.format(f));
/**
* String.format打印最简便
*/
System.out.println("6. "+String.format("%.2f", f));
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println("7. "+nf.format(f));
}
import java.math.BigDecimal;
import java.text.DecimalFormat;
import java.text.NumberFormat;
public class Computer {
//java中如何使Double类型的数值保留两位小数问题
public static void main(String[] args) {
Double dou = 3000.533;
dou = (double)Math.round(dou*100)/100;
System.out.println("1. "+dou);
Double dou1 = 3000.529888;
dou1 = (double)Math.round(dou1*10000)/10000; //同理保留四位小数就不用说了吧
System.out.println("2. "+dou1);
//二、第二种方法
double d = 111231.5585;
BigDecimal b = new BigDecimal(d);
double df = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
System.out.println("3. "+df);
//三、第三种方法
double a=10000;//要用double型,要不a/b永远得0;
double m=20000;
NumberFormat nbf=NumberFormat.getInstance();
nbf.setMinimumFractionDigits(2);
String c = nbf.format(a/m);
System.out.println("4. "+c);
/**
* DecimalFormat转换最简便
*/
double f = 111231.5585;
DecimalFormat df1 = new DecimalFormat("#.00");
System.out.println("5. "+df1.format(f));
/**
* String.format打印最简便
*/
System.out.println("6. "+String.format("%.2f", f));
NumberFormat nf = NumberFormat.getNumberInstance();
nf.setMaximumFractionDigits(2);
System.out.println("7. "+nf.format(f));
}
}
结果:
1. 3000.53
2. 3000.5299
3. 111231.56
4. 0.50
5. 111231.56
6. 111231.56
7. 111,231.56