当前位置: 首页 > news >正文

设计做图免费网站网络营销推广的媒体主要有三种类型

设计做图免费网站,网络营销推广的媒体主要有三种类型,无锡百度竞价公司,做租凭网站是经营性吗js数据精度丢失 最近看面试题想到了之前在开发钟遇到过的问题,现总结一下 在开发过程中,发现从后台返回的数据结构中的id字段在前端显示为不正确的值。经过排查,怀疑是JavaScript中Number类型精度丢失的问题。通过将id字段的类型从Number改为…

js数据精度丢失

最近看面试题想到了之前在开发钟遇到过的问题,现总结一下

在开发过程中,发现从后台返回的数据结构中的id字段在前端显示为不正确的值。经过排查,怀疑是JavaScript中Number类型精度丢失的问题。通过将id字段的类型从Number改为String进行测试,确认了问题的根源。尝试在前端获取数据后立即转换为String类型,但发现数据在JavaScript中接收时精度已经丢失,因此最佳解决方案是让后端将id字段的类型改为String。
在开发的时候,后台返回了一个数据结构如下

const list= [{id: 421234567891234567,name: '数据1'},{id: 421234567891234668,name: '数据2'},{id: 421234567891234679,name: '数据3'},{id: 421234567891234697,name: '数据4'}]
<template><button @click="btn">按钮</button>
</template>
<script setup lang="ts">const num: Array<{ id: number, name: string }> = [{id: 421234567891234567,name: '数据1'},{id: 421234567891234668,name: '数据2'},{id: 421234567891234679,name: '数据3'},{id: 421234567891234697,name: '数据4'}]const btn = () => {console.log('num:', num)}
</script>

通过打印发现数据结果如下图

通过图片发现数据和原始数据不一样了

开始怀疑是数据传输过程造成的,换乘postman 测试发现数据正常

最后怀疑是js在Number类型时精度丢失,于是讲数据换乘String类型测试


<template><button @click="btn">按钮</button>
</template>
<script setup lang="ts">const num1: Array<{ id: string, name: string }> = [{id: '421234567891234567',name: '数据1'},{id: '421234567891234668',name: '数据2'},{id: '421234567891234679',name: '数据3'},{id: '421234567891234697',name: '数据4'}]const btn = () => {console.log('num1:', num1)}
</script>

打印结果如下图

发现确实是Number类型时精度丢失,于是让后端将id改成了String类型

后来想前端能不能解决于是就有了一下的一些尝试

前端获取到数据后就转换一下

<template><button @click="btn">按钮</button>
</template>
<script setup lang="ts">
const num: Array<{ id: number, name: string }> = [{id: 421234567891234567,name: '数据1'
}, {id: 421234567891234668,name: '数据2'
}, {id: 421234567891234679,name: '数据3'
}, {id: 421234567891234697,name: '数据4'
}]const btn = () => {const num2 = num.map((item) => {return {...item, id: item.id.toString()}})console.log('num2', num2)
}
</script>

结果发现不行

最后还实验了别的方法都不行,在js拿到数据的那一刻数据的精度就已经丢失了,最好的方法还是后端去转换

js的数据最大精度为2的53次方 也就是最大只能是9007199254740992

js的数据最小精度为2的-53次方 也就是最大只能是-9007199254740992

js数据范围-9007199254740992~9007199254740992

http://www.sczhlp.com/news/127185/

相关文章:

  • 工程建设信息网站接口长春建站的费用
  • 安徽网站建设维护wordpress上传图片代码
  • 宝贝我想跟你做网站施工企业安全培训
  • 国外做ppt网站外贸网站建设和优化
  • 建设银行河北招聘网站淘宝客领券网站怎么做
  • 电子网站建设考试wordpress新闻快讯插件
  • 买目录做网站网页模板免费版
  • tk免费域名注册网站网站开发 图片存放
  • 全中文网站开发贵州碧江区住房和城乡建设局网站
  • 高清设计网站推荐中国十大装修公司排名
  • 怎么样自己做企业网站南希网站建设
  • 简单网站建设规划方案网站服务器备案查询网站备案
  • 阿雷网站建设公司响应式布局网站实例
  • 做网站有啥软件seo网站架构设计
  • 猎奇网站源码wordpress加载单页面
  • 微网站系统创建网站基本步骤
  • 成都网站建设优化推广网站建设服装项目设计书
  • 测试测试测试测试测试
  • 医院网站建设 利法拉网络公司注册网上查询
  • uniapp跳转内部页面河北网站建设seo优化制作设计
  • 黄岛区建设局网站齐家网装修怎么收费
  • 如何销售做网站如何进行网站推广?网站推广的基本手段有哪些
  • 杭州网站seo推广软件网络营销这个专业怎么样
  • 网站域名如何续费装修设计软件3d
  • 做网站网页排版错误淮北在建项目
  • 广州个性化网站建设北镇做网站
  • 福田网站建设流程网站营销话术
  • 制作微信公众号的网站开发asp.net 4.0网站开发实例教程
  • 温州大凯工艺品有限公司英文网站python+视频播放网站开发
  • 网站建设哪里去学seo快速排名优化方式