在Java中,如何截断数字以适应特定数量的空间?

在Java中,如何截断数字以适应特定数量的空间?,java,formatting,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位数的字段中。我

我对编程还是有点陌生,对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(字符串[]args){

上述代码的输出为:

Using NumberFormat:

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

123.456789
12.345679
1.234568

我正在寻找一种方法来格式化任何数字,以适合宽度为7的字段,一旦超过空格数,它将从末尾开始截断。我需要一种无论输入哪个数字都能工作的技术。printf()和和NumberFormat生成指定的小数位数,但两者都不会导致我的输出被截断。

可以使用DecimalFormat。在类中定义DecimalFormat对象

private static DecimalFormat df2 = new DecimalFormat(".##");
打印存储在名为result的变量中的值时,请使用以下代码打印格式化值:

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

Java中的float/double不是精确的类型。您应该研究使用
BigDecimal
,这是精确的,并且会使您的问题更容易回答。您能否使用printf/NumberFormat发布代码以及失败的方式
System.out.println(df2.format(result));