我对编程还是有点陌生,对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都产生指定数量的小数位数,但都不会导致我的输出被截断。
答案 0 :(得分:0)
您可以为此使用DecimalFormat。在您的课程中定义一个DecimalFormat对象
private static DecimalFormat df2 = new DecimalFormat(".##");
在打印存储在名为result的变量中的值时,请使用以下代码打印格式化的值:
System.out.println(df2.format(result));