我想获得BigDecimal的指数。
`1M` (`1E0M`) -> `0`
`10M` (`1E1M`) -> `1`
`11M` (`1.1E1M`) -> `1`
`1E2M` -> `2`
`1.0E2M` -> `2`
`100M` (`1.00E2M`) -> `2`
scale
,至少本身并不是我需要的。我真的宁愿不必使用.toPlainString
来破解那些东西。
我有点惊讶我想要的指数不是BigDecimal内部表示的一部分。
我正在使用Clojure中的BigDecimal,但任何适用于Java的逻辑都是受欢迎的。
答案 0 :(得分:5)
(defn exp<-bigdec
"Returns the exponent, b, from a BigDecimal in the form a * 10 ^ b."
[x]
(- (.precision x) (.scale x) 1))