Double精度有关问题【很基础的难题】

Double精度问题【很基础的难题】Java codeDouble d 120.00DSystem.out.println(d)//输出结果:120.0//

Double精度问题【很基础的难题】

Java code
Double d = 120.00D;System.out.println(d);//输出结果:120.0//================================String s="123";Double d=Double.valueOf(s);System.out.println(d);//输出结果:123.0




如果现在必须要两位小数(例如:12:00)如何处理?
求多种方法!

NumberFormat,strictfp等等!

[解决办法]
最后一句改成:
Java code
System.out.println(new DecimalFormat("#.00").format(d));
[解决办法]
Java code
      DecimalFormat nf = new DecimalFormat(".00");      String s="123";      Double d=Double.valueOf(s);      System.out.println(nf.format(d));
[解决办法]
Java code
System.out.printf("%.2f\n", d);如果要转成StringString s = String.format("%.2f", d);
[解决办法]
难得见你发帖!
[解决办法]
double没有所谓2位小数的概念。

你可以將某一double格式化成具体的精度展示方式,但不能指定某一个double在一个scale下计算。

如果需要使用精度计算,请使用BigDecimal