在 Clojure 中将比率格式化为百分比

Formatting a ratio as a percentage in Clojure

这看起来应该很明显,但是如何将 Clojure 的比率类型转换为百分比?

(format "%3s" (/ 1 2))
;; "1/2"

(format "%3f" (/ 1 2))
;; Throws an error

应该阅读来源:

(.decimalValue (/ 1 2))

做我需要的。

您可以随时转换为 Float:

(format "%3f" (float (/ 1 2)))

cl-format, which is derived from Common Lisp's format,在某些情况下比 Clojure 基于 Java 的 format 更灵活:

(require 'clojure.pprint)
(clojure.pprint/cl-format nil "~f" (/ 1 2)) ;=> "0.5"