Java 在csv文件中将double转换为char

Java 在csv文件中将double转换为char,java,string,csv,Java,String,Csv,我在将字符串数字转换为字符/csv文件时遇到问题: 使用Filwriter读取csv文件: FileWriter writer=new FileWriterfeatures.csv 我的csv文件的标题是: writer.append("EnergieMagnXYZ"); writer.append(','); writer.append("label"); writer.append('\n'); 通过以下方式追加数据行: writer.append(Double.toString(ener

我在将字符串数字转换为字符/csv文件时遇到问题:

使用Filwriter读取csv文件: FileWriter writer=new FileWriterfeatures.csv

我的csv文件的标题是:

writer.append("EnergieMagnXYZ");
writer.append(',');
writer.append("label");
writer.append('\n');
通过以下方式追加数据行:

writer.append(Double.toString(energie));
writer.append(',');
writer.append(label);
通过以下方式创建标签值:

字符串标签=

if(tt[i] > 600){
    label = "1";
}else if(tt[i] < 600){
    label = "0";    
}   
我的Energie双阵列tt[i]的值为:

2139.0882022271244

2334.38651422678

2329.342679013897

2286.6136318937574

但当我创建csv文件时,我的输出将如下所示:

EnergieMagnXYZ,标签

21.390.882.022.271.200,00

233.438.651.422.678,00

2.329.342.679.013.890,00

22.866.136.318.937.500,00

但我希望在我创建的csv文件中有这样的输出,案例标签为0:

EnergieMagnXYZ,标签

2139.0882022271244,0

2334.38651422678,0

2329.342679013897,0

2286.6136318937574,0

注意:

2139.0882022271244,0

不是单个数字,但2139.0882022271244和0是分开的字段。因此,我的行由一个双精度值和数字格式为0或1的标签组成。此外,我的双倍值中的点对于进一步使用非常重要


要获得这样的输出,我需要做哪些更改?

这就是您想要的:

NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false); // remove the dots grouping each 3 digits
nf.setMaximumFractionDigits(0); // remove the fraction digits
String formatedEnergie = nf.format(Energie));
现在您可以打印FormattedEnergie,而不是像下面这样打印Energie。
NumberFormat nf = NumberFormat.getInstance();
nf.setGroupingUsed(false); // remove the dots grouping each 3 digits
nf.setMaximumFractionDigits(13); // remove the fraction digits
String formatedEnergie = nf.format(Double.toString(energie)));
writer.append(formatedEnergie);
writer.append(',');
writer.append(label);
你会得到价值 2286.6136318937574


如果这不完全是您想要的,请使用API玩一玩,直到您获得所需的输出。

您的Energie的实际价值是什么?它是<3000还是>21e15?还有,你确定你得到的是.200,00吗?我想可能是。200,0,0。你好。实际值为2139.0882022271244。抱歉,这可能会让人困惑。逗号后的0不属于2139.0882022271244的实际值,它是一个单独的值不,我问的是您当前的输出。真的印了吗,200,00?是的!当我创建csv文件并查看第一行时,输出将为.200,00。正如我提到的,我想要的是2139.0882022271244,0,我不认为这个输出来自代码的这一部分。也许还有别的东西可以给你的作者写信?也许是其他作家在给这个文件写信?谢谢你的回答。这不完全是我想要的。可能我描述的意图还不清楚。表达式21.390.882.022.271.200,0是我的csv文件中的两个独立字段。逗号后的0不属于数字21.390.882.022.271.200。所以我有两个字段21.390.882.022.271.200字段能量值,0字段标签在这种情况下,将我上面写的代码行改为:nf.setMaximumFractionDigit0;至nf.SetMaximumFractionDigits 13;这将给你13个小数位数。所以,如果您的Energie是一个双2139.0882022271244,您将拥有它。非常感谢!它几乎起作用了。但是当我使用字符串formattedEnergie=nf.formattDouble.toStringGenergie时,我会得到一个异常,无法将给定对象格式化为数字,我已经在字符串formattedEnergie=nf.formattEnergie中编辑了代码行。那么,输出将是这样的:21390882022271244。我用逗号代替圆点。有没有办法用点代替逗号?