2012-02-24 134 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