2014-04-01 47 views
0

我試圖格式化一個double,如99928.000000只讀爲99928。我知道我可以將它更改爲一個整數,但是我正在閱讀的數據已經領先於0,整數不能提取。我可以以某種方式格式化爲只讀99928如何格式化一個Double來擺脫0's

String result = String.format("%f %s,%s (%1.3f; %1.3f)",zip, city, state, latitude,longitude); 

當前代碼^^感謝您的時間。

+2

呃...當前的變量是什麼數據類型,如果它們保持前導零? –

+0

發佈您的初始字符串。 –

+1

將郵政編碼存儲爲「String」而不是「double」更有意義。你不能和他們做算術(我可能住在洛杉磯和舊金山之間的中途?) –

回答

0

你已經通過編寫.3指定了三位小數,所以你得到它們。如果你不想要它們,不要指定它們。

我不知道你的意思是「整數不能接收的前導零」。雙打和整數都不包含前導零。

0

使用DecimalFormat創建一個String,並帶前導零來格式化一個郵政編碼。與此代碼:

DecimalFormat pattern = new DecimalFormat("00000"); 
String zip = pattern.format(99928.0); 
System.out.println(String.format("%s", zip)); 

的輸出是:

99928 

順便提及,因爲在一個郵政編碼前導零,它不應該被理解爲任何數值數據類型。您應該閱讀並將其存儲爲String

0

我猜你是存儲99928.000000作爲一個字符串,如果你能保持前導零。

在這種情況下,您應該能夠通過使用小數點上的字符串拆分來獲得所需的內容。

String foo = "99928.000000" 
foo = foo.split("\\.")[0] 
0

能否請您嘗試使用DecimalFormat,它說

# Number Yes Digit, zero shows as absent 

欲瞭解更多詳細信息,請參閱here

0

的郵政編碼,你應 「%5.0F」 掩蓋它,如下

String result = String.format("%5.0f %s,%s (%1.3f; %1.3f)", zip, city, state, latitude, longitude); 

可能是這樣可以幫到