2013-12-16 61 views
2

我正在生成一個csv文件,並且我有一堆沒有小數點的數字,而且我被要求爲這些情況設置.00,中號使用:Java getBytes()方法從我的字符串中的數字中剝離.0

DecimalFormat f = new DecimalFormat("#.00"); 

所以發太好了,我可以看到一個字符串尋找這樣:

String myStringWithDecimalPoints = "124.00, 24567868.00, 5.00" 

但是當我做:

out.write(myStringWithDecimalPoints.getBytes()); 

我得到在我的csv中:

124, 24567868, 5 

爲什麼會發生這種情況?

任何解決方法? (它必須是CSV和.00必須出現)

+3

您是以純文本還是電子表格的形式查看CSV文件? –

+1

你能構建一個[最小測試用例](http://sscce.org)嗎? (因爲我不能:http://ideone.com/Zn7gxi) –

+0

你能展示你的OutputStream(我認爲這就是'out')是如何創建的嗎?爲Strings使用PrintWriter通常會更好,這樣字符編碼就不會被破壞。 –

回答

2

您必須小心如何查看數據,特別是在Excel等電子表格中,輸出的格式取決於單元格的類型。它可能顯示或不顯示十進制值。

未來的一個音符,與像

out.write(myStringWithDecimalPoints.getBytes()); 

呼叫時,可以有把握地認爲Java正在寫的所有字節爲OutputStream。如果你在接收方看不到同樣的事情,那麼接收並不像你期望的那樣完成。

0

最有可能有一些混淆之間的原始字符串的值,以及如何使用您的格式化程序以某種方式輸出時,您的字符串顯示。這並不一定意味着您的「原始」字符串已被更改。

如果您提供了更完整的代碼示例,我們可以更確定地說。