一、其实很简单: Double dou = 3000.533 dou = (double)Math.round(dou*100)/100 其中dou是变量,很简单吧,我们大多数人都知道Math.round()方法,可是我却没想到保留两位小数就是先乘以100再除以100. 同理保留N位小数就不用说了吧 二、第二种方法 double d = 111231.5585; BigDecimal b = new BigDecimal(f); double df = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue(); 三、第三种方法 double a=10000;//要用double型,要不a/b永远得0; double b=20000; NumberFormat nbf=NumberFormat.getInstance(); nbf.setMinimumFractionDigits(2); String c = nbf.format(a/b);
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(); } }