2013-12-16 27 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

最有可能有一些混淆之间的原始字符串的值,以及如何使用您的格式化程序以某种方式输出时,您的字符串显示。这并不一定意味着您的“原始”字符串已被更改。

如果您提供了更完整的代码示例,我们可以更确定地说。