Java 在浮点数中保留 2 位小数

Java putting 2 decimal places in float

如何让输入的答案只显示小数点后两位?当我这样做时,答案是不同的

Scanner user_input = new Scanner(System.in);
float num;
DecimalFormat f = new DecimalFormat("##.00");
System.out.println("Enter any number");
num = user_input.nextFloat();
System.out.println("Square of "+num+" is: "+f.format(num)+Math.pow(num,2));
}

您需要将幂与答案相加,然后对结果进行格式化。目前您正在格式化数字,然后执行幂函数导致结果为原始格式。

将输出行修改为:

System.out.println("Square of "+num+" is: "+f.format(num+Math.pow(num,2)));

因此,对于 21.12345 的输入,结果将如下所示:

Enter any number 21.12345 
Square of 21.12345 is: 467.32

System.out.printfC printf 函数类似。您可以使用它来格式化带占位符的字符串。它还可以处理格式化 float 值。

System.out.printf("Square of %.2f is: %.2f %n" , num, num * num);

以上代码应该只打印小数点后的 2 位数字。 %n 换行。

有关详细信息,请查看此 link https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

如果你只需要格式化String那么你可以使用String.format方法,其中returns格式化字符串用占位符值填充。