如何截断数字以适合Java中特定数量的空格?

时间:2019-02-07 05:39:49

标签: java formatting

我对编程还是有点陌生​​,对Java还是很新,我想要的代码是这样的:

double a = 10;
double b = 1234.123;
double c = 123.1234;

System.out.println(a);
System.out.println(b);
System.out.println(c);

我希望输出显示为:

10
1234.12
123.123

所以基本上,我希望数字被截断以适合指定的空格数。在上面的示例中,我希望数字适合7位数字的字段。我尝试使用printf()和NumberFormat,但这些方法似乎都无法正常工作,我还有什么其他选择? 感谢您的回复。

编辑:@Pete,这是我一直在尝试的方法。     公共静态void main(String [] args){

    double num1 = 123.456789;
    double num2 = 12.3456789;
    double num3 = 1.23456789;
    // create number format object
    NumberFormat nf = NumberFormat.getInstance();
    // limits number of fraction digits to five
    nf.setMinimumFractionDigits(5);
    System.out.println("Using NumberFormat:");
    System.out.println();
    System.out.println("num1 = " + nf.format(num1));
    System.out.println("num2 = " + nf.format(num2));
    System.out.println("num3 = " + nf.format(num3));
    System.out.println("-------------------------------");
    System.out.println("Using printf:");
    System.out.println();
    System.out.printf("%7f\n", num1);
    System.out.printf("%7f\n", num2);
    System.out.printf("%7f\n", num3);
}

以上代码的输出为:

Using NumberFormat:

num1 = 123.45679
num2 = 12.34568
num3 = 1.23457
-------------------------------
Using printf:

123.456789
12.345679
1.234568

我正在寻找一种格式化任何数字以适合宽度为7的字段的方法,一旦超出空格数,它将从结尾处截断。我想要一种无论输入哪个数字都可以使用的技术。 printf()和NumberFormat都产生指定数量的小数位数,但都不会导致我的输出被截断。

1 个答案:

答案 0 :(得分:0)

您可以为此使用DecimalFormat。在您的课程中定义一个DecimalFormat对象

private static DecimalFormat df2 = new DecimalFormat(".##");

在打印存储在名为result的变量中的值时,请使用以下代码打印格式化的值:

System.out.println(df2.format(result));