后端Long类型传到前端精度丢失的问题

这篇具有很好参考价值的文章主要介绍了后端Long类型传到前端精度丢失的问题。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

问题出现:后端的Java Bean的id属性是用的Long类型对应数据库主键使用bigint类型,当使用JSON方式传递该数据给前端时,前端接收到的数据末尾会变成0。(发生的精度丢失问题) 问题原因:Java中的long能表示的范围比js中number大,也就意味着部分数值在js中存不下(变成不准确的值),导致Id最后几位直接变成了0。  

后端Long类型传到前端精度丢失的问题,js,前端

 

 前端接收打印:

后端Long类型传到前端精度丢失的问题,js,前端

 解决方案1(后端):将后端的id变成字符串类型,前端以字符串的方式接收就不会有精度丢失

解决方案2(前端):前端方案1前端引入 json-bigint,

   npm install json-bigint

解决方案3(前端):在axios封装的地方,transformResponse 在传递给 then/catch 前,允许修改响应数据。

后端Long类型传到前端精度丢失的问题,js,前端文章来源地址https://www.toymoban.com/news/detail-577834.html

 修改axios的源码,在node_modules/axios/lib/default.js中找到transformResponse 将其内容改为:

transformResponse: [function transformResponse(data) {
    /*eslint no-param-reassign:0*/
    if (typeof data === 'string') {
      try {
        data = JSON.parse(data);
      } catch (e) { /* Ignore */ }
    }
    return data;
  }],

解决方案4(前端):

后台传到前台时,Long类型数据,转为String类型。可以直接操作传回的对象数据,toString()该long类型数据。(推荐)

到了这里,关于后端Long类型传到前端精度丢失的问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot解决前端js处理大数字丢失精度问题Long转String

    一、Jackson对Long类型的处理导致精度丢失的问题 表的某一个字段的类型是 BIGINT,对应的 Java 类的属性的类型就是 Long。当这个字段的值由后端返回给前端网页时,发现了精度丢失的问题。比如后端返回的值是 588085469986509185,到了前端是 588085469986509200,后面的几位数变成了

    2024年02月21日
    浏览(48)
  • 前端处理后端传来的Long型数据精度丢失的问题--对象转换器Jackson0bjectMapper

    1、问题描述 前端提交参数 后端处理 前端js对long型数据进行处理时丢失精度(只能保证16位),导致提交的id和数据库中的id不一致。 2、 问题实现 如何解决这个问题? 我们可以在服务端给页面响应json数据时进行处理,将long型数据统一转为String字符串 3、具体代码实现–对象

    2024年02月16日
    浏览(88)
  • spring Boot处理返回给前端Long类型精度丢失

    项目中采用springcloud Alibaba技术开发分布式系统,开发过程中采用雪花算法生成分布式Id,为Long类型,而Long类型返回给前端,会出现精度丢失问题。 接下来我们主要了解下,如何快速的处理精度丢失的问题 可以直接在返回实体属性添加\\\"@JsonSerialize(using = ToStringSerializer.class)\\\"。

    2024年02月02日
    浏览(59)
  • 后端long类型数据在前端产生精度损失

    后端我们常常会用Long类型的数据作为ID,例如用雪花算法生成唯一ID java中long类型的取值范围 (-9,223,372,036,854,775,808)(9,223,372,036,854,775,807)。有19位数字 JavaScript的Number类型是浮点数类型,它可以表示的整数范围是从(-9,007,199,254,740,992)到2^53(9,007,199,254,740,992)只有16位数

    2024年02月16日
    浏览(49)
  • Es 通过javaApi上传数据Long类型丢失精度的问题一次性解决

    通过 updateRequest.docAsUpsert(true) true 表示无匹配_id是插入数据,false 表示无匹配_id会抛出异常

    2024年02月15日
    浏览(56)
  • 前端接收后端数据时,遇到精度丢失的问题

    之前项目开发过程中遇到过前端接收后端数据时,遇到精度丢失的问题。当时进行了问题记录,本篇博客针对于这个问题进行问题原因并进行多种方式解决这个问题。 前端接收后端返回的数据时出现精度丢失问题,通常是因为在数据传输过程中,数据类型被转换为了 JavaScr

    2024年02月02日
    浏览(69)
  • 如何解决前端传递数据给后端时精度丢失问题

    有时候我们在进行修改操作时,发现修改既不报错也不生效。我们进行排查后发现服务器端将数据返回给前端时没有出错,但是前端js将数据进行处理时却出错了,因为id是Long类型的,而js在处理后端返回给前端的Long类型数据时只能处理前16位,后3位进行了四舍五入操作,例

    2024年02月09日
    浏览(62)
  • 在前后端分离的项目中,Springboot vue,前端把json传到后端,后端用一个类接收,json中的数据是怎么转换类型的

    在前后端分离的项目中,前端通常会将数据以 JSON 格式传输给后端,后端需要将接收到的 JSON 数据转换为对应的类型。这个过程可以通过后端框架和库来自动完成。 在Spring Boot中,后端可以使用相关的库来实现JSON数据的转换。常见的库包括Jackson、Gson和FastJson等。这些库提供

    2024年02月13日
    浏览(67)
  • js精度丢失的问题

    1.js精度丢失的常见问题,从常见的浮点型进行计算,到位数很长的munber类型进行计算都会造成精度丢失的问题, 首先我们看一个问题: 那么js为什么会出现精度丢失的问题: 计算机的二进制实现和位数限制有些数无法有限表示。就像一些无理数不能有限表示,如 圆周率 3.1

    2024年02月14日
    浏览(50)
  • JS小数运算精度丢失的问题

    工作中会不会经常会碰到一些数据指标的计算,比如百分比转化,保留几位小数等,就会出现计算不准确,数据精度丢失的情况。通过这篇分享借助第三方库能够轻松解决数据精度丢失的问题。 JS数字精度丢失的一些常见问题 为什么0.1 + 0.2 === 0.3是false呢? 先看下面这个比喻

    2024年02月08日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包