2012-02-24 98 views
1

如何编号在各种情况下使用Java在格式化:的Java小数格式化

  1. 如果该值为0,则输出将为零。
  2. 如果值为1,则输出将为1.
  3. 如果值为1.2,则输出将为1.20。
  4. 如果值是1.20,那么输出将是1.20。

所以这意味着如果输入值有小数,那么我必须将numberformat应用到两位小数,否则不需要。

+0

这里有一个类! [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

+0

你用google搜索了吗?你看过decimat格式吗? http://docs.oracle.com/javase/6/docs/api/java/text/DecimalFormat.html – Nishant 2012-02-24 13:41:27

+0

如何获得值,即什么是Java类型? – 2012-02-24 13:41:56

回答

3

一个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); 
    } 
+0

输入如1.002怎么样? – jarnbjo 2012-02-24 14:17:56

+0

@jarnbjo:1.002的输入将显示为1.00。如果可以接受,则取决于user914357。我认为用户914357正在处理至多2位小数的金钱。 – 2012-02-24 14:20:57

+0

@:但我需要输出值作为双不string.if我做Double.parseDouble(formatter1.format(输入[我])),我失去了小数位。 – user914357 2012-02-24 15:31:22

-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