Java格式双精度到字符串,精度最低

时间:2015-10-14 22:29:56

标签: java formatting double precision

如何以最小的精度在格式化字符串中打印双值?例如:

double v = 2.02;
String.format("%f", v);

默认%f格式始终打印6 digits after point => “2.020000”。我需要的是

42.0  => "42"
2.02  => "2.02"
0.3333333333333333 => "0.3333333333333333"

我能得到的最好成绩是String.valueOf(v)

String.format("%s", String.valueOf(v));

通过除“42”以外的所有测试。关于简单方法进行所有三项测试的任何想法?

1 个答案:

答案 0 :(得分:0)

正如Yassin指出的那样,自定义格式有一种ggod方式:

public static String fmt(double d)
{
    if(d == (long) d)
        return String.format("%d",(long)d);
    else
        return String.format("%s",d);
}