java - String.format 返回使用逗号作为分隔符的 double 值

标签 java string

我正在制作一个随机文件生成器,它可以生成带有随机笛卡尔点的 txt 问题是:当我将 String.format 用于数字(假设为 4.3)时,我得到“4,3”。但我不想要逗号,我什至不知道它为什么会变成逗号,根本没有用...... 代码:

FileWriter fileWriter = new FileWriter(new File("txt.txt"));
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
Random generator = new Random();
int nPoints = generator.nextInt(10)+10;
bufferedWriter.write(""+nPoints);
for (int n=0; n<nPoints; n++){
    bufferedWriter.newLine();
    String x = String.format("%.1f", generator.nextDouble()*100-50);
    String y = String.format("%.1f", generator.nextDouble()*100-50);
    bufferedWriter.write(x + " " + y);
}
bufferedWriter.close();

我已经使用replace(",", ".")解决了这个问题,但我有点认为这不是一个好的解决方案,我想知道是否有任何理由在格式方法中使用逗号。

最佳答案

您应该以正确的方式解决它,而不是使用解决方法(用点替换逗号)。 “有一个 API 可以实现这一点。”

Locale.setDefault(new Locale("pt", "BR"));
String portuguese = String.format("%.1f", 1.4d);
String english = String.format(Locale.ENGLISH, "%.1f", 1.4d);
System.out.println("pt_BR = " + portuguese);
System.out.println("en_GB = " + english);

产生的输出

pt_BR = 1,4
en_GB = 1.4

而且它不是一个非标准化函数 (see the Javadoc) 。标准是使用默认区域设置,如果需要您可以更改行为

关于java - String.format 返回使用逗号作为分隔符的 double 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29641769/

相关文章:

python - 无法使用 Python 截断数字

python - python中的函数用于在大文件中搜索特定名称的可能组合

无法设置 C char 数组元素

java - 如何在java中输入两个名字之间有空格

java - 使用 <<""//?? 创建字符串字符 Android java

java - Activity 对象中两列组合的唯一约束

java - Android中TextView的Resource NotFound异常

javax.annotation : @Nullable vs @CheckForNull

java - "this"Android实现多接口(interface)时的关键字

java - Neo4j 服务器启动异常