网络调用显示后端正在发送以下内容:
"uom" : "EA", "qty" : 1.123456789012345678
但是当它到达前端时,使用console.log:
{ qty: 1.1234567890123457, uom: "EA" }
为什么javascript会丢失最后一位数字或截断数字?数字在java中使用BigDecimal表示。前端使用AngularJs框架,向后端发出GET调用,请求JSON。
0tdrvxhp1#
Javascript浮点数的精度为64位,类似于Java中的double,如果必须使用Java中的BigDecimal来扩展精度级别,你需要在Javascript中做一些类似的事情来扩展它的类似边界,NPM包js-big-decimal可能是你最好的选择,你可以在JSON中以字符串的形式传输值来防止JSON。从将它们解释为Number进行解析。
double
cgh8pdjw2#
谢谢你的帮助我发现
@JsonSerialize(using = ToStringSerializer.class) public getQty(){ return this.qty; }
Java域对象解决了该问题。
2条答案
按热度按时间0tdrvxhp1#
Javascript浮点数的精度为64位,类似于Java中的
double
,如果必须使用Java中的BigDecimal来扩展精度级别,你需要在Javascript中做一些类似的事情来扩展它的类似边界,NPM包js-big-decimal可能是你最好的选择,你可以在JSON中以字符串的形式传输值来防止JSON。从将它们解释为Number进行解析。cgh8pdjw2#
谢谢你的帮助我发现
Java域对象解决了该问题。