0
点赞
收藏
分享

微信扫一扫

Oracle的字段number查询的值返回到前端出现精度丢失问题

止止_8fc8 2022-06-28 阅读 28


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


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

Oracle的字段number查询的值返回到前端出现精度丢失问题_json

后端解决办法


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


Oracle的字段number查询的值返回到前端出现精度丢失问题_json_02

前端解决办法


因为这个字段是返回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+'')">
但是传过去也会被精度丢失()



举报

相关推荐

0 条评论