java 中的固定小数位双精度和十的幂格式
Fixed decimal places double and power of ten format in java
我正在 Java 中编写一些代码,用于处理文本文件中的数据。
在文本文件中保存坐标。数字的布局始终是:5.000000000000000+0
数据被读取、处理,然后打印回文件中。打印部分还没有工作,因为小数位数不同,我还没有成功地以所示方式附加 10 的幂。
对于我试过的十进制数:
formatter.setMinimumFractionDigits(15);
和
formatter.setMaximumFractionDigits(15);
但有时还是会显示更多的数字。
我怎样才能为我的双数实现显示的格式或至少获得正确数量的小数位数?
使用String.format:
double x = 1.1231523235;
System.out.print(String.format("%.5f", x));
那将打印
1,12346
如果您想要点作为分隔符,请使用
System.out.print(String.format(Locale.ENGLISH,"%.5f", x));
这里有一个例子
NumberFormat form = NumberFormat.getInstance();
form.setMinimumIntegerDigits(2);
form.setMinimumFractionDigits(4);
form.setMaximumFractionDigits(6);
double number = 23.993838939239;
System.out.println("format : " + form.format(number));
我不确定您要的是什么,但是如果您想完全格式化双精度数,则必须指定最小整数位数、最小分数位数和最大分数位数。
您应该 post 出问题的那段代码以获得更准确的帮助。这段代码的结果是:
23,993839
我正在 Java 中编写一些代码,用于处理文本文件中的数据。
在文本文件中保存坐标。数字的布局始终是:5.000000000000000+0
数据被读取、处理,然后打印回文件中。打印部分还没有工作,因为小数位数不同,我还没有成功地以所示方式附加 10 的幂。
对于我试过的十进制数:
formatter.setMinimumFractionDigits(15);
和
formatter.setMaximumFractionDigits(15);
但有时还是会显示更多的数字。 我怎样才能为我的双数实现显示的格式或至少获得正确数量的小数位数?
使用String.format:
double x = 1.1231523235;
System.out.print(String.format("%.5f", x));
那将打印
1,12346
如果您想要点作为分隔符,请使用
System.out.print(String.format(Locale.ENGLISH,"%.5f", x));
这里有一个例子
NumberFormat form = NumberFormat.getInstance();
form.setMinimumIntegerDigits(2);
form.setMinimumFractionDigits(4);
form.setMaximumFractionDigits(6);
double number = 23.993838939239;
System.out.println("format : " + form.format(number));
我不确定您要的是什么,但是如果您想完全格式化双精度数,则必须指定最小整数位数、最小分数位数和最大分数位数。 您应该 post 出问题的那段代码以获得更准确的帮助。这段代码的结果是:
23,993839