String.format("%f", h) 不设定小数位数格式化后显示小数位数为6位
double h = 45612645464645642d;String strD = String.format("%f", h);
System.out.println("strD==="+strD);
(1)如果h没有小数的话,为什么他默认的是六位小数;结果是:45612645464645642.000000
那位大侠给我解释下;
--------------------编程问答-------------------- 以为你的 h 是 double类型的,在double转换为String的过程中,为了避免精度受损,所以默认保留了6位小数位,即使没有小数位,则也以0填充,这是java默认的。 --------------------编程问答-------------------- 就是这么规定的 --------------------编程问答-------------------- 你按照缺省的float去格式化它,给你6位小数很正常啊,要不你就指定小数位数好了。 --------------------编程问答-------------------- 请参考java api "f"的说明,有句"如果没有指定精度,则默认值为 6".....
补充:Java , Java SE