代碼如下:
mport java.text.DecimalFormat; DecimalFormat df = new DecimalFormat("######0.00"); double d1 = 3.23456 double d2 = 0.0; double d3 = 2.0; df.format(d1); df.format(d2); df.format(d3);
3個結果分別為:
3.23 0.00 2.00
java保留兩位小數問題:
方式一:四舍五入
double f = 111231.5585; BigDecimal b = new BigDecimal(f); double f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
方式二:格式化
java.text.DecimalFormat df =new java.text.DecimalFormat("#.00"); df.format(你要格式化的數字);
new java.text.DecimalFormat("#.00").format(3.1415926) // #.00 表示兩位小數 #.0000四位小數 以此類推...
double d = 3.1415926; String result = String .format("%.2f"); // %.2f %. 表示 小數點前任意位數 2 表示兩位小數 格式后的結果為f 表示浮點型
方式四:
NumberFormat ddf1=NumberFormat.getNumberInstance() ; void setMaximumFractionDigits(int digits) // digits 顯示的數字位數 // 為格式化對象設定小數點后的顯示的最多位,顯示的最后位是舍入的
import java.text.* ; import java.math.* ; class TT { public static void main(String args[]) {
double x=23.5455; NumberFormat ddf1=NumberFormat.getNumberInstance() ; ddf1.setMaximumFractionDigits(2); String s= ddf1.format(x) ; System.out.print(s); } }
方式五:
import java.text.*;DecimalFormat df=new DecimalFormat(".##"); double d=1252.2563; String st=df.format(d); System.out.println(st);