我有这样的DecimalFormat:
DecimalFormat df = new DecimalFormat("#,###.###");
然后我有3个方法只返回时间,电位和电流的浮点值,如果是最后两个,则返回多个小数。所以我试图得到一个输出消息,其中包含3个值,所以:
System.out.println("t="+df.format(getTime())+"(s), v="+df.format(getPotential())+"(V), i="+df.format(getI())+"(A)");
时间只计算从0到10的秒数,没有任何小数,看起来没问题,直到它达到10.然后它显示1E + 1。我只是不明白为什么,因为我已经读过API,如果我不在DecimalFormat中使用'E'字符,它不应该是科学记数法。
此外,潜力从0变为某个值,使用3位小数。看起来不错,但从0到0.01,它显示为4位小数,最后一位始终为0。
对DecimalFormat的这种行为的任何解释?我做错了什么?
答案 0 :(得分:0)
在您的情况下使用printf可能会更简单:
System.out.printf("t=%d(s) v=%.2f(V) i=%.2f(A)\n", getTime(), getPotential(), getI());