修复了java中十进制位数和十位格式的小数位数

时间:2015-08-19 13:42:35

标签: java numbers format double

我在Java中编写一些应该操作文本文件数据的代码。 在文本文件中保存了坐标。数字的布局始终是:5.000000000000000+0 读取,操作数据然后将其打印回文件。打印部分还没有工作,因为小数位数不同,我还没有成功地以所示的方式附加10的幂。 对于我尝试的十进制数字:

formatter.setMinimumFractionDigits(15);

formatter.setMaximumFractionDigits(15);

但有时仍显示更多数字。 如何实现双倍数字的显示格式或至少获得正确的十进制数字?

2 个答案:

答案 0 :(得分:2)

使用String.format:

    double x = 1.1231523235;
    System.out.print(String.format("%.5f", x));

将打印

    1,12346

如果你想要点作为分隔符使用

    System.out.print(String.format(Locale.ENGLISH,"%.5f", x));

答案 1 :(得分:0)

这里有一个例子

    NumberFormat form = NumberFormat.getInstance();
    form.setMinimumIntegerDigits(2);
    form.setMinimumFractionDigits(4);
    form.setMaximumFractionDigits(6);

    double number = 23.993838939239;
    System.out.println("format : " + form.format(number));

我不确定你要求的是什么,但是如果你想完全格式化双号,你必须指定最小整数位数,最小分数位数和最大分数位数。 您应该发布一段代码,为您提供更准确的帮助。这段代码的结果是:

 23,993839