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

定制app网站新郑做网站优化

定制app网站,新郑做网站优化,修改网站需要什么,重庆沙坪坝有什么好玩的当JS处理大整数或者浮点数的时候会出现精度丢失的情况。 Javascript的数字都使用双精度浮点数表示,遵循IEEE754标准 比如我遇到的问题,对一个小数的四舍五入,保留2位小数: 235.985≈235.98 235.9851≈235.99 原理请大家参考百度&…

当JS处理大整数或者浮点数的时候会出现精度丢失的情况。
Javascript的数字都使用双精度浮点数表示,遵循IEEE754标准

比如我遇到的问题,对一个小数的四舍五入,保留2位小数:
235.985≈235.98
235.9851≈235.99
原理请大家参考百度,本文只提供解决方案:
在JavaScript中处理精度丢失问题,可以采用以下方法:

1. 大整数处理

  • 使用字符串传输:与后端约定,将大整数(如ID)作为字符串返回,避免JSON解析时转为不准确的Number。
  • JSON解析处理:使用JSON.parse的reviver函数检测并转换大数为字符串:
    JSON.parse(jsonString, (key, value) => {if (typeof value === 'number' && (value > Number.MAX_SAFE_INTEGER || value < Number.MIN_SAFE_INTEGER)) {return value.toString(); // 转换为字符串}return value;
    });
    
  • 使用BigInt类型:对需要运算的大整数,使用ES6的BigInt
    const bigNum = BigInt("12345678901234567890"); // 使用字符串初始化
    console.log(bigNum + 1n); // 运算需使用同类型
    

2. 浮点数精度问题

  • 转为整数计算
    const result = (0.1 * 10 + 0.2 * 10) / 10; // 0.3
    
  • 使用第三方库(如decimal.js):
    import Decimal from 'decimal.js';
    const sum = new Decimal(0.1).plus(0.2).toString(); // "0.3"
    

3. 第三方库推荐

  • 大数运算bignumber.jsmath.js
  • 精确小数decimal.jsbig.js

4. JSON序列化BigInt

  • 自定义序列化方法:
    const data = { id: 12345678901234567890n };
    const json = JSON.stringify(data, (key, value) => typeof value === 'bigint' ? value.toString() : value
    );
    

5. 前后端协作

  • 明确数据格式:确保可能超出安全范围的字段(如ID、长整型)以字符串形式传输。

总结

  • 大整数:优先字符串传输,使用BigInt或库处理。
  • 浮点数:转为整数计算或使用专用库。
  • 兼容性:检查BigInt支持情况,必要时引入Polyfill。

通过以上策略,可有效避免JavaScript中的精度丢失问题。

http://www.yayakq.cn/news/821007/

相关文章:

  • 南宁建站官网网站建设创新互联公司
  • 网站批量收录北辰正方建设集团有限公司官方网站
  • 网站机房建设有助于南京建筑人才招聘网
  • 怡梦姗网站做么做食品外贸选哪个网站好
  • 大气简洁网站9元建站节
  • 个人免费网站开发中国商务服务网
  • 如何修改网站模版上海交通大学网站建设与管理3
  • 刚做优化的网站什么能更新查找做影评的工作网站
  • 工商局网站怎么做股东实名认证摄影设计网站
  • 淘宝官网首页下载重庆seo俱乐部
  • 电商网站竞价推广策略昆明小程序开发多少钱
  • 公司做竞拍网站的收入怎么报税wordpress卡蜜
  • 阿里巴巴注册网站首页影视后期线上培训哪个机构好
  • 网站目录结构说明怎么做网站横幅
  • 即墨网站制作好网站建设
  • 电商网站开发要哪些技术郑州一建
  • 建站平台备案短视频平台推广方案
  • 网站底部固定广告代码dede5.7模板 新闻文章网站源码
  • 音乐网站怎么做社交的软件设计师含金量高吗
  • 芗城网站建设南网站建设
  • 网站建设 自适应wordpress自定义模块
  • 个人网站做镜像做网站可以赚钱吗?
  • 泰安做网站优化有关做聚合物电池公司的网站
  • 素材免费下载网站赣州网上商城系统
  • 销售 网站wordpress建企业展示
  • h5响应式网站建设报价wordpress添加column
  • 网站单页模板广州市开发区建设网站
  • 公司网站的专题策划成都网站建设公司思乐科技
  • 只做正品的网站个人相册网站建设报告
  • 专门做宠物食品的网站合肥网络公司 网站建设