我的机器上的语言环境是 sv_SE.utf8,我希望格式在格式化字符串时遵循 en_GB.utf8 的约定。目前
(format "%f" 0.1) ; => 0,1
而不是
(format "%f" 0.1) ; => 0.1
我似乎无法将区域设置传递给格式。还有其他方法可以解决这个问题吗?由于它的其他功能,我仍然想继续使用 format。
最佳答案
这对我有用(我的笔记本电脑默认区域设置为 fr-FR
,法国!):
(import java.util.Locale)
; => java.util.Locale
(defn my-format [fmt n & [locale]]
(let [locale (if locale (Locale. locale)
(Locale/getDefault))]
(String/format locale fmt (into-array Object [n]))))
; => #'dev/my-format
(my-format "%f" 0.1)
; => "0,100000"
(my-format "%f" 0.1 "en-GB")
; => "0.100000"
有什么好处吗?
关于clojure - 使用 Clojure 根据英语语言环境格式化 float 的字符串表示形式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44281495/