zoukankan      html  css  js  c++  java
  • Oracle的字段number查询的值返回到前端出现精度丢失问题

    查询的资源id是19位,到16位的时候精度就丢失了

    查看数据库字段使用的是number 在oracle里面如果查询出来的值大于15位会以科学计算法显示

    后端解决办法

    select *,to_char(字段名) 丢失的问题就解决了
    或者修改数据库字段类型

    前端解决办法

    因为这个字段是返回19位

    var dataFull = JSON.stringify(full);
    var dataObj = eval("(" + dataFull + ")");
    console.log("dataObj========>"+dataObj.resPid)
    result = dataObj.resPid;//获取该字段
    const taskId = result.match(/[0-9]{19}/)[0] // 正则获取19位数字的值
    result = result.replace(taskId,`"${taskId}"`) // 补上双引号
    console.log("result========>"+result)来到这一步就已经处理好了
    const dataResPid = JSON.parse(result)//因为onclick传参不能直接传字符串,需要转成对象
    

    随后是把该值放在input框里面的onclick点击事件里面传参过去
    onclick="spr.resource.resource.opreation.view(''+dataResPid+'')">
    但是传过去也会被精度丢失()

  • 相关阅读:
    通过包名获取该包下的所有类
    spring各版本下载地址
    Hash函数和消息摘要算法
    @Value在Controller中取值
    Velocity根据模版生成静态html
    所谓人生
    用递归解决问题
    获取客户端IP
    windows下文件名非法字符
    各控件所支持的数据源格式
  • 原文地址:https://www.cnblogs.com/rzkwz/p/15379707.html
Copyright © 2011-2022 走看看