java中如何使Double类型的数值保留两位小数问题
来源:互联网 发布:linux mplayer 分辨率 编辑:程序博客网 时间:2024/05/07 18:57
一、其实很简单:Double dou = 3000.533dou = (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(); } }
0 0