scala BigDecimal Gson JSON форматирование - PullRequest
1 голос
/ 02 мая 2019

Если у меня есть следующий код в 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? Я предполагаю, что мне придется как-то настроить библиотеку Gson для scala.

1 Ответ

2 голосов
/ 02 мая 2019

В первом случае вы, вероятно, работаете с java.math.BigDecimal, в то время как в другом случае вы работаете с scala.math.BigDecimal.

Вы также можете работать с Java BigDecimal в Scala, например,

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...