Scala BigDecimal Gson json格式

时间:2019-05-01 21:58:57

标签: json scala gson

如果我在Java中使用以下代码

        Gson gson = new Gson();
        System.out.println(gson.toJson(new BigDecimal(10).setScale(2, RoundingMode.HALF_UP)));

它打印 10.00,正是我想要的。

但是,如果这次我在scala中具有相同的代码,

println(new Gson().toJson(BigDecimal(10).setScale(2, RoundingMode.HALF_UP)))

它打印:

{"bigDecimal":1.00,"mc":{"precision":34,"roundingMode":"HALF_EVEN"},"computedHashCode":1565550863}

这不是我想要的。如何解决仅打印10张的问题?我以为我必须为scala配置Gson库。

1 个答案:

答案 0 :(得分:2)

在第一种情况下,您可能正在使用java.math.BigDecimal,而在其他情况下,您正在使用scala.math.BigDecimal

例如,您也可以在Scala中使用Java BigDecimal

import java.math.{BigDecimal => JBigDecimal}
println(new Gson().toJson(new JBigDecimal(10).setScale(2, RoundingMode.HALF_UP)))

这只会打印10.00,这是您想要的。


顺便说一句,如果您只需要BigDecimal的字符串表示形式,为什么不只使用toString

scala>     println(BigDecimal(10).setScale(2, RoundingMode.HALF_UP).toString)
10.00