如何在各种情况下使用Java对格式进行编号:
所以这意味着如果输入值有小数,那么我必须将numberformat应用于两个小数位,否则不需要。
答案 0 :(得分:3)
对于没有小数的情况和两位小数的情况,一个DecimalFormatter
不起作用。
以下是符合所有4个条件的代码:
DecimalFormat formatter1 = new DecimalFormat("0");
DecimalFormat formatter2 = new DecimalFormat("0.00");
double[] input = {0, 1, 1.2, 1.265};
for (int i = 0; i < input.length; i++) {
double test = Math.round(input[i]);
if (Math.abs(test - input[i]) < 1E-6) {
System.out.println(formatter1.format(input[i]));
} else {
System.out.println(formatter2.format(input[i]));
}
}
编辑添加:对于jambjo,一个在DecimalFormatter
之后操纵字符串的版本。
DecimalFormat formatter2 = new DecimalFormat("0.00");
double[] input = {0, 1, 1.2, 1.265};
for (int i = 0; i < input.length; i++) {
String result = formatter2.format(input[i]);
int pos = result.indexOf(".00");
if (pos >= 0) {
result = result.substring(0, pos);
}
System.out.println(result);
}
答案 1 :(得分:-2)
见http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html。这种格式的一个例子是:
double input = 1.2;
DecimalFormat formatter = new DecimalFormat("0.00");
String result = formatter.format(input);
十进制符号(以及结果字符串中使用的其他符号)将取决于系统区域设置(除非另有设置) - 请参阅http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html#setDecimalFormatSymbols%28java.text.DecimalFormatSymbols