DecimalFormat newFormat = new DecimalFormat("##.##");为以下值提供了意想不到的结果:
for value 0.005 = 0.00
0.015 = 0.02DecimalFormat没有格式化0.005 to 0.01。当提供0.005 to 0.01时,请告诉我如何获得DecimalFormat newFormat = new DecimalFormat("##.##");的值。
提前谢谢。
发布于 2018-02-14 05:58:58
在看完你的评论后,你可以手动转到2位,然后做十进制格式。
下面是一个例子:
public static void main(String[] args) {
double input = 0.004;
DecimalFormat formatter = getDecimalFormat(input);
System.out.println(formatter.format(round2Digit(input)));
input = 0.005;
formatter = getDecimalFormat(input);
System.out.println(formatter.format(round2Digit(input)));
input = 0.015;
formatter = getDecimalFormat(input);
System.out.println(formatter.format(round2Digit(input)));
}
private static DecimalFormat getDecimalFormat(double input){
DecimalFormat formatter = (input % 1 == 0) ? new DecimalFormat("##.##"): new DecimalFormat("#0.00");
return formatter;
}
private static double round2Digit(double input){
double result = input * 100;
result = Math.round(result);
result = result / 100;
return result;
}输出:
0.00 0.01 0.02
https://stackoverflow.com/questions/48780170
复制相似问题