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

企业网站的设计论文社区推广方法有哪些

企业网站的设计论文,社区推广方法有哪些,免费咨询服务期,网站 设置特殊的字体1.js精度丢失的常见问题,从常见的浮点型进行计算#xff0c;到位数很长的munber类型进行计算都会造成精度丢失的问题#xff0c; 首先我们看一个问题#xff1a; 0.1 0.2 ! 0.3 // truelet a 9007199254740992 a 1 a // true那么js为什么会出现精度丢失的问题…1.js精度丢失的常见问题,从常见的浮点型进行计算到位数很长的munber类型进行计算都会造成精度丢失的问题 首先我们看一个问题 0.1 0.2 ! 0.3 // truelet a 9007199254740992 a 1 a // true那么js为什么会出现精度丢失的问题 计算机的二进制实现和位数限制有些数无法有限表示。就像一些无理数不能有限表示如 圆周率 3.1415926…1.3333… 等。JS 遵循 IEEE 754 规范采用双精度存储double precision占用 64 bit 比如 0.1 0.0001 1001 1001 1001…1001无限循环 0.2 0.0011 0011 0011 0011…0011无限循环 此时只能模仿十进制进行四舍五入了但是二进制只有 0 和 1 两个于是变为 0 舍 1 入。这即是计算机中部分浮点数运算时出现误差丢失精度的根本原因。 大整数的精度丢失和浮点数本质上是一样的尾数位最大是52位因此 JS 中能精准表示的最大整数是 Math.pow(2, 53)十进制即 9007199254740992。 大于 9007199254740992 的可能会丢失精度 9007199254740992 10000000000000…000 // 共计 53 个 0 9007199254740992 1 10000000000000…001 // 中间 52 个 0 9007199254740992 2 10000000000000…010 // 中间 51 个 0 当你做如下计算的时候 9007199254740992 1 // 丢失 9007199254740992 2 // 未丢失 9007199254740992 3 // 丢失 9007199254740992 4 // 未丢失 对于整数前端出现问题的几率可能比较低毕竟很少有业务需要需要用到超大整数只要运算结果不超过 Math.pow(2, 53) 就不会丢失精度。 对于小数前端出现问题的几率还是很多的尤其在一些电商网站涉及到金额等数据。解决方式把小数放到位整数乘倍数再缩小回原来倍数除倍数 // 0.1 0.2 (0.110 0.210) / 10 0.3 // true 对于过大的数字 可以用bigint应为number的基本类型不能超过2^53不然就会出现精度丢失为了解决这个限制在ECMAScript标准中出现了BigInt。 BigInt可以表示任意大的整数 但是要注意写法 let result124569875984123677888999; //估摸着这一步就在前端已经精度丢失了 String(BigInt(result))let resultBigInt(124569875984123677888999); //这里也已经精度丢失了 String(result) // 上面两种都是错误的写法// 正确写法 let result124569875984123677888999n; String(result);除了以上方式还可以借助第三方库 BigNumber.js提供了超高精度的数字处理能力可以解决精度丢失问题。 decimal.js提供了类似于 Python Decimal 的类型可以精确表示浮点数解决精度丢失问题。 npm install bignumber.js --savelet x new BigNumber(123.4567); let y BigNumber(123456.7e-3); let z new BigNumber(x); x.isEqualTo(y) y.isEqualTo(z) x.isEqualTo(z); // truelet x new BigNumber(1111222233334444555566); x.toString(); // 1.111222233334444555566e21 x.toFixed(); // 1111222233334444555566// Precision loss from using numeric literals with more than 15 significant digits. new BigNumber(1.0000000000000001) // 1 new BigNumber(88259496234518.57) // 88259496234518.56 new BigNumber(99999999999999999999) // 100000000000000000000// Precision loss from using numeric literals outside the range of Number values. new BigNumber(2e308) // Infinity new BigNumber(1e-324) // 0// Precision loss from the unexpected result of arithmetic with Number values. new BigNumber(0.7 0.1) // 0.7999999999999999npm install --save decimal.jsconst a 9.99;const b 8.03;// 加法let c new Decimal(a).add(new Decimal(b)) // 减法let d new Decimal(a).sub(new Decimal(b))// 乘法let e new Decimal(a).mul(new Decimal(b))// 除法let f new Decimal(a).div(new Decimal(b))
http://www.hkea.cn/news/14417166/

相关文章:

  • 江西南昌建设厅网站手机端网站搭建
  • 芜湖网站制作唐山网站开发培训
  • 龙岩亿网行大连seo排名
  • 网站建设之开展电子商务wordpress权限设置管理员
  • 能打开的网站你了解的北京seo服务销售
  • 网站建设的规划方案软件开发平台的选择
  • cms系统创建静态网站wordpress添加开场
  • wordpress做复杂网站seo标签优化
  • 网站怎么做市场分析曼联vs维拉直播免费视频直播
  • 幸福人寿保险公司官方网站保单查询搜狗站长推送工具
  • 介休做网站网站运营开发托管
  • 襄阳网站seo诊断8网站建设做网站
  • 销售产品单页面网站广州天华建筑设计有限公司
  • 怎么样自己做企业网站网站节点加速
  • 贵金属网站模板安徽seo团队
  • 商城建站系统源码优秀个人博客网站
  • 品牌网站建设h合肥微信公众号怎么创建
  • 网站建设东莞公司c 做网站起什么作用
  • 云南建站推广域名注册需要什么资料
  • 做网站遇到竞争对手怎么办漳州网站建设 林
  • 新手做的网站合肥做个网站什么价格
  • 网站建设优化文章视频网站界面设计
  • 高端企业网站建设公司wordpress什么样子
  • 网站导航栏一般有什么内容广安发展建设集团公司网站
  • 跨境电商一站式服务平台甘肃做网站哪家专业
  • 长治网站建设公司南京网站创建
  • 宜昌 网站建设wordpress小工具文件夹
  • 滨州 网站开发网站建设湖南
  • 采摘园网站建设方案网推什么平台好用
  • 写的网站怎么做接口惠州网络问政平台