【问题标题】:Use @ResponseBody Return BigDecimal Precision Lost使用 @ResponseBody 返回 BigDecimal 精度丢失
【发布时间】:2020-05-02 03:41:42
【问题描述】:

在我的项目中,我使用 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 有什么问题。请您提供解决方案吗?

【问题讨论】:

标签: spring bigdecimal


【解决方案1】:

实际上,您的示例并没有丢失精度。 100.00100 相同,因为值被写为数字而不是字符串。如果该值将被序列化为字符串"valueObj" : "100",您可能会争辩说这是一个差异,但不是数字。

如果您遇到问题,例如100.01 缩短为100,但也是这样吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-22
    • 1970-01-01
    • 2020-07-28
    • 2021-09-27
    • 2012-11-14
    • 2013-06-17
    • 1970-01-01
    相关资源
    最近更新 更多