首页 > 其他分享 >取巧解决js eval()计算精度丢失问题

取巧解决js eval()计算精度丢失问题

时间:2023-12-18 09:59:08浏览次数:35  
标签:表示 计算精度 取巧 js 丢失 eval data 精度 小数

javaScript中存在小数点精度丢失的问题是由于其使用的浮点数表示方式。JavaScript采用的是双精度浮点数表示法,也称为IEEE 754标准,它使用64位来表示一个数字,其中52位用于表示有效数字,而其他位用于表示符号、指数和特殊情况。

由于使用有限的位数来表示无限的小数,JavaScript无法准确地表示某些小数。其中一个典型的示例是0.1,它在二进制中是一个无限循环的小数。当我们将0.1这样的小数转换为二进制进行存储时,存在近似表示的误差,因此在进行计算时会出现精度丢失的问题。
image
因为涉及到配置化 且包含括号运算 自己写方法解决这个精度丢失问题麻烦。所以还是基于eval()计算后的值做解决方法 data是eval()计算后得出的值

data = Number(data.toFixed(5))
// 我这边只取到5 可以往后多取几位。精度更高一些。由于我这边的业务取到5就够了 如果需要保留两位小数 在toFixed一遍即可

image

标签:表示,计算精度,取巧,js,丢失,eval,data,精度,小数
From: https://www.cnblogs.com/chaplink/p/17910373.html

相关文章

  • cesium.js入门基础教程四(事件)
    事件简介Cesium中大的事件按照类型进行分类,可以分为如下几种:鼠标键盘事件相机事件数据加载事件场景加载事件 按照事件的使用方式进行分类,可以分为如下两种:创建事件处理器Handler并指定事件触发类型定义事件,如与鼠标键盘事件相关的屏幕空间事件处理器ScreenSpaceEventH......
  • json.load()和json.loads()
    在Python中,json.load和json.loads 分别用于从文件对象和字符串中加载JSON数据,但它们之间有一些重要的区别:1.输入类型: json.load:接受一个已经打开的文件对象作为参数,从文件中读取JSON数据。 json.loads:接受一个包含JSON数据的字符串作为参数,从字符串中加载JSON数据。2......
  • js动态加载
    <scripttype="text/javascript">//动态加载js(顺序执行js)functionloadScript(url,callback){varscript=document.createElement("script")script.type="text/javascript";if(script.readyState){//IE......
  • 使用JS和C#完成websocket双向通讯
    写在前面:微软官方对websocket的直接支持很差,教程也写得不用心。还要用户自己去转字节数组和字符串,太过分了!毕竟主推SignalR。本文是在官方教程的基础上,对其进行了一些简单的讲解,和方法提取、封装,以期降低学习难度。步骤描述:1、随便建了个普通的mvc项目(任意带控制器的.net项......
  • js实现以鼠标为中心缩放图片
    直接上代码,不解释<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0"><title>Document</tit......
  • Threejs利用着色器编写动态飞线特效
    一、导语动态飞线特效是可视化数据地图中常见的需求之一,鼠标点击的区块作为终点,从其他区块飞线至点击区块,附带颜色变换或者结合粒子动画二、分析利用创建3点来构成贝塞尔曲线,形成线段利用着色器材质来按照线段以及时间点变化来变化线段的颜色形成动画三、上基础代码//贝塞尔曲线......
  • Threejs漫天多彩粒子天空--粒子系统打造
    一、导语漫天多彩粒子天空特效应该也是Threejs项目中挺常见的一个需求,因为它是基于粒子系统,可以衍生出许多的不一样的方案,比如,星空特效,下雨特效,飘雪特效等等,不仅可以用在项目中增加氛围,有时候可以结合gis业务去使用二、分析利用Points粒子特效去实现多个物体的生成使用贴图去给粒子......
  • 使用JS和SignalR完成双向通信
    写在前面:看官网介绍,听开发者朋友的感受,SignalR对websocket等多个长连接协议进行了封装,提供了多种方法,能够适应很多场合和复杂情况。单纯论简单的web长连接,它确实没有js/nodejs版的websocket直观、简单。微软的风格,一来就高大上,不知道又会劝退多少人,会不会把自己玩死。我帮你简单......
  • 使用js和nodejs完成websocket双向通讯
    如题。感谢AI。先用js完成一个最简单的例子。web端:html:<!DOCTYPEhtml><html><head><metacharset="utf-8"><title></title><scriptsrc="j1.js"></script></head>......
  • 使用JS脚本修改页面内容
    在学习RPA时,我对使用JS脚本修改页面内容进行了深入学习。记录如下:获取元素的方法:1.document.getElementById("xxx")2.document.getElementsByClassName("xxx")3.document.getElementsByTagName("xxx")4.document.getElementsByName("xxx")5.document.querySele......