首页 > 其他分享 >【踩坑】JS/TS 整数明明没有超过 Number.MAX_VALUE,为啥精度还是丢失了?

【踩坑】JS/TS 整数明明没有超过 Number.MAX_VALUE,为啥精度还是丢失了?

时间:2023-09-26 17:15:56浏览次数:46  
标签:code return MAX TS 整数 JS key prop

代码

function calcKey(props) {
    return props.reduce((key, prop, index) => {
        const code = prop[0] * (15 + 1) + prop[1];
        console.log(code);
        console.log(key);
        return key  + code * Math.pow(1000, index) ;
    }, 0);
}

function calcByStr(str) {
    return calcKey(str.trim().split(" ").map(item => item.split(",").map(i => parseInt(i))));
}

calcByStr("1,11 3,1 1,3 4,6 4,11 8,1 8,11 8,13 ")

运行结果

image

如图在标黄的部分,key 的尾部本应该是 ....027,却变成了 020,发生了精度丢失。
但 Number.MAX_VALUE 明明远大于我们的 129075070019049020 。

image

这是为什么呢?

参考 Javascript可以保存的最大数值_js最大整数_梦想是坚持的博客-CSDN博客

JS中实际上:整数
整数 ±2^53 = 9007199254740992
基本上超过16位整数就无法精确地表示了 超过这个最大值,所有的奇数都会+1或者-1变成偶数,无法准确赋值。

标签:code,return,MAX,TS,整数,JS,key,prop
From: https://www.cnblogs.com/bakabird/p/17730499.html

相关文章

  • Knights of the Round Table
    prologue相信很多人都感觉这个题不就是求一下这个二分图的最大独立集嘛,有什么难的,(劈里啪啦、库里跨啦、叮里哐啷)好,不对,好好好,题解!analysis这个题目实际上并不是一个完整的最大独立集问题,因为在这个题里面,是可以有相互仇恨的骑士的,只要不让他们二人坐成同桌就行。那么我们就不......
  • js的 var let const
    一、简介二、内容三、问题 一、简介js的变量引用,记录下使用的差别。二、内容var (是variation的简写)是最初js使用的变量声明。1//var特点2//声明的变量具有函数作用域,也就是说,变量的作用域限定在声明它的函数内部(函数作用域)或全局范围内(全局作用......
  • Js常用方法
    数组修改push():向数组末尾添加一个或多个元素------------------------------------返回新数组长度unshift():向数组首项添加一个或多个元素---------------------------------返回新数组长度pop():删除数组最后一个元素--------------------------------------------返回删除的......
  • 流媒体播放器EasyPlayer.js无法播放H.265的情况是什么原因?该如何解决?
    H5无插件流媒体播放器EasyPlayer属于一款高效、精炼、稳定且免费的流媒体播放器,可支持多种流媒体协议播放,可支持H.264与H.265编码格式,性能稳定、播放流畅,能支持WebSocket-FLV、HTTP-FLV,HLS(m3u8)、WebRTC等格式的视频流,并且已实现网页端实时录像、在iOS上实现低延时直播等功能。有......
  • 使用pako.js压缩、解压数据
    最近发现有个接口响应时间很长,查看network发现数据量比较大,导致需要用近3秒才能完成请求。于是决定后端压缩数据后再发给前端解压,顺便把发送数据的地方也改成了压缩数据。本文用到的插件:pako.js、js-base64废话不多说,附上demo:cdn引入插件<scriptsrc="https://cdn.bootcdn.......
  • 基于Java的大学生汉服租赁网站的设计与实现(亮点:在线支付、ECharts图表展示、完整下单
    大学生汉服租赁网站一、前言二、我的优势2.1自己的网站2.2自己的小程序(小蔡coding)2.3有保障的售后2.4福利三、开发环境与技术3.1MySQL数据库3.2Vue前端技术3.3SpringBoot框架3.4微信小程序四、功能设计4.1主要功能描述五、系统实现5.1前端实现5.1.1汉服租赁5.1.2汉服......
  • Mac故障排查系列:redis删除key报错MISCONF Redis is configured to save RDB snapshots
    背景:Mac下使用AnotherRedisDesktopManager客户端,删除key,遇到报错:MISCONFRedisisconfiguredtosaveRDBsnapshots,butit'scurrentlyunabletopersisttodisk.Commandsthatmaymodifythedatasetaredisabled,becausethisinstanceisconfiguredtoreporte......
  • 【面试题】Js数组去重都有哪些方法?
    1.indexOf定义:indexOf()方法可返回某个指定的字符串值在字符串中首次出现的位置。如果没有找到匹配的字符串则返回-1。注意:iindexOf()方法区分大小写。语法:string.indexOf(searchvalue,start)//;searchvalue必需。searchvalue可选参数。返回值:Number//查找指定字符串第一次......
  • json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及by
    json数据传输压缩以及数据切片分割分块传输多种实现方法,大数据量情况下zlib压缩以及bytes指定长度分割。importsysimportzlibimportjsonimportmathKAFKA_MAX_SIZE=1024*1024CONTENT_MIN_MAX_SIZE=KAFKA_MAX_SIZE*0.9defsplit_data(data):""":param......
  • P5838 [USACO19DEC] Milk Visits G
    P5838[USACO19DEC]MilkVisitsGLuoguP5838Solution提供一种奇特的\(\mathcalO(\dfrac{n\sqrtn\logn}{\omega})\)的做法。树链剖分转化成序列问题。然后变成了询问一个区间\(l,r\)是否存在一个颜色\(k\),显然可以\(\mathcalO(n)\)预处理\(\mathcalO(\sqrtn)\)......