我正在生成一个csv文件,我有一堆没有小数点的数字,我需要为那些情况放置.00,我正在使用:
DecimalFormat f = new DecimalFormat("#.00");
所以很好我可以看到这样的字符串:
String myStringWithDecimalPoints = "124.00, 24567868.00, 5.00"
但是当我这样做时:
out.write(myStringWithDecimalPoints.getBytes());
我进入了我的csv:
124, 24567868, 5
为什么会这样?
有任何变通方法吗? (它必须是CSV并且必须出现.00)
答案 0 :(得分:2)
您必须小心查看数据的方式,尤其是在Excel等电子表格中,输出格式取决于单元格的类型。它可能显示或不显示十进制值。
未来的注释,通过类似
的调用out.write(myStringWithDecimalPoints.getBytes());
您可以放心地假设Java正在将所有字节写入OutputStream
。如果你在接收方没有看到同样的事情,那么接收就不会像你期望的那样完成。
答案 1 :(得分:0)
原始字符串的值与使用格式化程序以某种方式输出字符串时字符串的显示方式之间存在一些混淆。这并不一定意味着您的“原始”字符串已被更改。
如果您提供了更完整的代码示例,我们可以更加确定地说。