2016-08-16 82 views
0

如何从输入的答案只显示2位小数位?当我这样做时答案不同爪哇将2位小数位浮点数

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)); 
} 

回答

0

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

修改您的输出线:

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 
+0

你的代码是正确的,但让我解决一些事情。我认为你不需要把标识符放在Math.pow的旁边,因为输入的数字会给结果增加另一个,所以输出将变成467.32而不是446.20我希望你能得到它,并对我的英语不好! – cookieWarrior

0

System.out.printf作品像C printf功能。您可以使用它来用占位符格式化字符串。它也可以照顾格式float的值。

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

上面的代码应该照顾小数点后仅打印2位数字。 %n用于换行。

欲了解更多信息,检查此链接https://docs.oracle.com/javase/tutorial/java/data/numberformat.html

如果你只需要格式化String那么你可以使用String.format方法,它返回充满占位符值的格式化字符串。