2013-10-20 45 views
2

我想編譯我知道在其他人的機器上工作的代碼,但在我的系統上拋出一個特定的錯誤。具體地,錯誤涉及printf()的方法Java:printf不適用於參數(字符串,雙)

的方法的printf在類型爲PrintStream(字符串,對象[])不是 適用於參數(字符串,雙)

例如

public static void main(String[] args) { 

     double rate =10.5; 
     System.out.printf("%.3f", rate); 
    } 

有誰知道爲什麼會出現這個錯誤?有使用printf()的替代方法,但這非常煩人!

+0

嘗試將其封裝在'new Object [] {rate}'中。 –

+0

我沒有得到與該代碼相同的錯誤。我懷疑其他事情是錯誤的。 –

+0

您使用的是哪個Java版本? –

回答

4

Java編譯器符合性級別1.4有可能嗎?

+0

這是OP的問題的答案,還是一個評論?我想這可能是第二個。 –

+0

我應該改寫一下:我能想到的唯一解釋是OP的Java合規性級別設置爲1.4。我認爲這很可能導致觀察到的錯誤。 –

+0

@EelLee:我認爲這個答案比你的更接近標準。 1 +投票。我沒有看到代碼示例中的任何地方或自動裝箱應用的錯誤消息。但是我確實看到了printf在Java 1.4中不存在的地方。 –

0

有趣的是,它編譯沒有問題關於Java 7,並打印出

10.500

它可能使用autoboxing。但是省略了自動裝箱的問題 - 因爲您的方法只接受Objects,而不是primitives,您需要使用包裝Double

相關問題