zoukankan      html  css  js  c++  java
  • js处理后端返回超过16位大数字方案(network中preview和response返回不一致)

    后端返回的数据与前端console.log数据不一致问题(network中preview和response返回不一致)
    在项目中偶尔会遇到后端返回的一大串数字,类似于订单编号(orderId),券ID(couponId)等等。有时候这些数字远超过十位、八位什么的;可能会有二十几位的一串数字。前端一般拿到数据是后面几位都是0。

    一般这种情况是,精度丢失

    精度丢失多出现于,后端使用的字段类型的精度与前端不一样。
    前段时间遇到的couponId有十九位长的数字。前端拿到的值后面三位全是0。postman跑出来的是十九位的正常的,后三位非0,但是console.log()打印的结果后三位是0;由于console.log()是异步的,可能页面的某些逻辑影响到了结果。我在接口返回的最始地方alert了下,发现最后三位还是0,与实际的值不符合。

    中间省略n个过程,直接到结果:

    问了下后端用的哪种类型,后端说是用了long类型,long类型与javaScript中的长度是不一致的,Java中的long类型是JavaScript的好多倍。于是让后端将Long类型修改成string类型就解决了该问题

  • 相关阅读:
    洛谷 1341 无序字母对
    POJ 2774 后缀数组 || 二分+哈希
    HDU 1251 统计难题
    【解题报告】AtCoder ABC115 (附英文题目)
    【模板】后缀数组
    洛谷 3567/BZOJ 3524 Couriers
    Beta 冲刺 (1/7)
    团队项目评测
    beta冲刺前准备
    Alpha冲刺——事后诸葛亮
  • 原文地址:https://www.cnblogs.com/shuihanxiao/p/14610395.html
Copyright © 2011-2022 走看看