来自json的BigDecimal丢失精度

db2dz4w8  于 2023-02-17  发布在  其他
关注(0)|答案(2)|浏览(310)

网络调用显示后端正在发送以下内容:

"uom" : "EA",
"qty" : 1.123456789012345678

但是当它到达前端时,使用console.log:

{ 
  qty: 1.1234567890123457, 
  uom: "EA"
}

为什么javascript会丢失最后一位数字或截断数字?
数字在java中使用BigDecimal表示。前端使用AngularJs框架,向后端发出GET调用,请求JSON。

0tdrvxhp

0tdrvxhp1#

Javascript浮点数的精度为64位,类似于Java中的double,如果必须使用Java中的BigDecimal来扩展精度级别,你需要在Javascript中做一些类似的事情来扩展它的类似边界,NPM包js-big-decimal可能是你最好的选择,你可以在JSON中以字符串的形式传输值来防止JSON。从将它们解释为Number进行解析。

cgh8pdjw

cgh8pdjw2#

谢谢你的帮助我发现

@JsonSerialize(using = ToStringSerializer.class)
public getQty(){
   return this.qty;
}

Java域对象解决了该问题。

相关问题