Использовать @ResponseBody Возвращать потерянную точность BigDecimal - PullRequest
0 голосов
/ 15 января 2020

В моем проекте я использую Spring @ResponseBody, и когда я возвращаю объект, содержит BigDecimal, например:

{
  "messageType" : "",
  "messageContent" : "",
  "valueObj" : 100.00,
  "redirectUrl" : "",
  "success" : false
}

, тогда тело ответа в браузере равно

{
  "messageType" : "",
  "messageContent" : "",
  "valueObj" : 100,
  "redirectUrl" : "",
  "success" : false
} 

У меня проблема с потерей BigDecimal Precision. его точность (100.00 -> 100) .

В чем проблема с Spring для преобразования BigDecimal. Не могли бы вы дать мне решение?

1 Ответ

0 голосов
/ 15 января 2020

На самом деле точность не теряется в вашем примере. 100.00 совпадает с 100, поскольку значение записывается как число, а не как строка. Если значение будет сериализовано как строка "valueObj" : "100", вы можете утверждать, что это разница, но не для числа.

У вас возникнет проблема, если, например, 100.01 будет сокращено до 100, но это тоже так?

...