2016-08-16 75 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方法,它返回充滿佔位符值的格式化字符串。