如何編號在各種情況下使用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