Clojure将货币字符串转换为浮点数

问题描述 投票:1回答:2

我知道关于将字符串转换为浮点数/数字/小数的问题很多,但是我的情况大不相同,因为我需要转换字符串数(代表美元值),但是我必须在其中保留美分。转换,这是我的情况。

我收到此值“ 96,26”“ 1.296,26”我希望转换为以下内容:96.261296.26

如果我尝试使用clojure.edn,则它逃脱了美分

(edn/read-string "1.296,26")
=> 1.296
(edn/read-string "96,26")
=> 96

如果我尝试使用像bugdec这样的其他方法,我会得到NumberFormatException

我知道我们可以做一些字符串替换,但是看起来很麻烦,就像这样:

(-> "1.296,87"
    (clojure.string/replace #"\." "")
    (clojure.string/replace #"," ".")
    (edn/read-string))
clojure string-parsing
2个回答
5
投票

您可以做的是使用Java的格式化工具:


3
投票

只需使用直接Java互操作:

© www.soinside.com 2019 - 2024. All rights reserved.