2014-02-11 57 views
1

我的System.out Java行不能正確執行,從而導致它們在一行中全部打印每行的一半。我不確定這裏有什麼問題。根據我的筆記,他們看起來沒問題。有什麼想法嗎?Java System.out行不能正確執行

代碼:

System.out.printf("The circumference of a circle with radius ", radius, " is: ", circumference, ".\n"); 
System.out.printf("The area of a circle with radius ", radius, " is: ", areacircle, ".\n"); 
System.out.printf("The area of a sphere with radius ", radius, " is: ", areasphere, ".\n"); 
System.out.printf("The volume of a sphere with radius ", radius, " is: ", volumesphere, ".\n"); 

輸出:

輸入半徑:2.5 與半徑的圓與半徑的圓與半徑的球體的球的體積的區域的面積的周長半徑爲

+1

您可能想閱讀[格式化字符串](http://www.homeandlearn.co.uk/java/java_formatted_strings.html)或[格式化數字打印輸出](http://docs.oracle.com) .com/javase/tutorial/java/data/numberformat.html) – MadProgrammer

回答

6

您沒有使用printf權限。這:

System.out.printf("The circumference of a circle with radius ", radius, " is: ", circumference, ".\n"); 

應該是:

System.out.printf("The circumference of a circle with radius %.2f is: %.2f%n", 
    radius, circumference); 

%f是你的浮點佔位符(大概是這裏的兩倍)值。 printf背後的想法是避免你在代碼中所做的醜陋的字符串連接。請注意,您應該在printf和類似代碼中使用%n作爲行尾,而不是\n

欲瞭解更多詳情,你會想看看java.util.Formatter類的API。

3

要正確使用printf,請在第一個參數中提供所有格式,併爲所有其他參數提供值。使用佔位符來表示值。例如,對於第一行:

System.out.printf("The circumference of a circle with radius %f is %f.\n", 
    radius, circumference); 

還請參閱formatting summary

+0

半徑和圓周不可能是整數,pi是不合理的,所有的都是。 –

+0

@DavidWallace你是對的;我修改了我的答案。 – rgettman