Java CSV和大价值

Java CSV和大价值,java,csv,Java,Csv,我有字符串值 该值为: 12345.123456789012345 我想从java将此值写入csv文件。为此,我使用OpenCSV。 这是代码 String csv = "D:\\denemehttp\\dene.csv"; CSVWriter writer = new CSVWriter(new FileWriter(csv)); String [] country = "India#China#United States#12345.123456789012345

我有字符串值

该值为:

12345.123456789012345
我想从java将此值写入
csv
文件。为此,我使用
OpenCSV
。 这是代码

    String csv = "D:\\denemehttp\\dene.csv";
    CSVWriter writer = new CSVWriter(new FileWriter(csv));

    String [] country = "India#China#United States#12345.1234567890123456".split("#");

    writer.writeNext(country);

    writer.close();
但当我打开
csv
时,值为:

12345.123456789
但它必须是:

12345.123456789012345
请注意,当我用记事本++打开
csv
文件时,它会显示真实值:

12345.123456789012345
那么问题是什么呢


编辑:我找到了解决方案。我尝试了Apache POI,它可以工作。您可以使用Apache POI设置单元格类型,excell不会将值视为数字,也不会对其进行格式化。它将值完全写入字符串。

您提到您在两个不同的应用程序中打开了CSV。第一种方法要么剪辑它,要么格式化它,这样你就看不到真正的值(例如Excel)。你的程序是正确的

如果您正在使用的应用程序是用于打开的Excel,则在编写之前需要将该值括在双引号(“)中。 csv应该如下所示:

"India","China","United States","12345.1234567890123456"

这是因为Excel无法识别具有此精度的数字,需要将其视为字符串。

您使用哪个程序打开CSV?Excel将所有大数字视为64位浮点。这可能只是Excel中的格式问题。请尝试调整单元格格式以显示更高的精度。您可以我还得把这一栏加宽一些!我知道我的代码是正确的。但是当我双击并打开csv时,我想看到真实值:12345.123456789012345,然后用一个显示完整值的程序打开它。你没有告诉我们那是什么应用程序。但是当我双击并打开csv时,我想看到真实值,只需更改默认的csv open applica记事本++