如果我在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库。
答案 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