Clojure:如何将字符串转换为long?

use*_*942 3 clojure type-conversion

假设您有字符串"100.0"如何将其转换为long类型.

Leo*_*nel 8

字符串"100.0"是Double的字符串表示形式,因此如果您尝试将其解析为long,则会出现异常.

使用Java原始包装器中的方法.

(let [s "100.0"] (Double/valueOf s))
> 100.0
(let [s "100.0"] (class (Double/valueOf s)))
> java.lang.Double
Run Code Online (Sandbox Code Playgroud)

或者,如果您的字符串很长,您可以使用类java.lang.Long中的方法将其解析为:

(let [s "100"] (Long/valueOf s))
> 100
(let [s "100"] (class (Long/valueOf s)))
> java.lang.Long
Run Code Online (Sandbox Code Playgroud)