2014-09-20 106 views
0

我想在Java中將字符串數字轉換爲兩位小數。我在satckoverflow上看到很多帖子,但不知何故,我得到一個異常。如何將字符串數字轉換爲Java中的兩位小數三位?

String number = "1.9040409535344458"; 
String result = String.format("%.2f", number); 

System.out.println(result); 

這是我得到的例外 -

java.util.IllegalFormatConversionException: f != java.lang.String 

我想有1.904作爲輸出。有誰知道我在這裏做什麼錯?

+0

您的號碼變量是String而不雙或浮動。 – 2014-09-20 19:43:40

+2

將字符串轉換爲數字,然後使用該格式。 – Henry 2014-09-20 19:43:55

+0

我也做過'String.format(「%。2f」,Integer.parseInt(number));'這次我得到一個異常爲'java.lang.NumberFormatException:對於輸入字符串:「1.9040409535344458」' – john 2014-09-20 19:44:44

回答

1

您可以嘗試使用NumberFormat。例如:

String number = "1.9040409535344458"; 
NumberFormat formatter = new DecimalFormat("#0.000"); 
String result = formatter.format(Double.valueOf(number)); 

System.out.println(result); 
0

只是申報數量爲雙:

Double number = 1.9040409535344458; 

,而不是

String number = "1.9040409535344458"; 

OUTPUT:

1.90 
0

您正在使用的格式並不意味着一個String。我建議將String轉換爲double或將其存儲爲double。將String轉換爲double,並將double轉換爲String.format

0

你應該將字符串先轉換成雙,然後更改十進制值

String number = "1.9040409535344458"; 
double result = Double.parseDouble(number);//converts the string into double 
result = result *100;//adjust the decimal value 
System.out.println(result); 
+0

你試過了你的代碼片段嗎?它是否做OP的要求? – Henry 2014-09-21 05:23:54

相關問題