如何编号在各种情况下使用Java在格式化:的Java小数格式化
- 如果该值为0,则输出将为零。
- 如果值为1,则输出将为1.
- 如果值为1.2,则输出将为1.20。
- 如果值是1.20,那么输出将是1.20。
所以这意味着如果输入值有小数,那么我必须将numberformat应用到两位小数,否则不需要。
如何编号在各种情况下使用Java在格式化:的Java小数格式化
所以这意味着如果输入值有小数,那么我必须将numberformat应用到两位小数,否则不需要。
一个DecimalFormatter
ISN对于没有小数点的情况和小数点后两位的情况不起作用。
下面是一些代码,以满足您的条件下,所有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.002怎么样? – jarnbjo 2012-02-24 14:17:56
@jarnbjo:1.002的输入将显示为1.00。如果可以接受,则取决于user914357。我认为用户914357正在处理至多2位小数的金钱。 – 2012-02-24 14:20:57
@:但我需要输出值作为双不string.if我做Double.parseDouble(formatter1.format(输入[我])),我失去了小数位。 – user914357 2012-02-24 15:31:22
请参阅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
这里有一个类! [http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html](http://docs.oracle.com/javase/6/docs/api/java/text/ DecimalFormat.html) – Will 2012-02-24 13:40:38
你用google搜索了吗?你看过decimat格式吗? http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html – Nishant 2012-02-24 13:41:27
如何获得值,即什么是Java类型? – 2012-02-24 13:41:56