当前位置:编程学习 > JAVA >>

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
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,