字符串"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)