2012-02-18 47 views
8

在Java中,我可以做以下格式化浮點數顯示:爲什麼我的字符串格式在Clojure中失敗?

String output = String.format("%2f" 5.0); 
System.out.println(output); 

從理論上講,我應該可以做同樣的事情與此Clojure的:

(let [output (String/format "%2f" 5.0)] 
    (println output)) 

然而,當我在REPL中運行上面的Clojure代碼段時,出現以下異常:

java.lang.Double cannot be cast to [Ljava.lang.Object; 
[Thrown class java.lang.ClassCastException 

我在做什麼錯?

回答

15

Java的String.format需要一個Object[](或Object...),使用String.format Clojure中你需要用你的論點中的數組:

(String/format "%2f" (into-array [5.0])) 

的Clojure提供了封裝的格式更容易使用:

(format "%2f" 5.0) 

Kyle

相關問題