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

处理小数精度丢失问题

import Fraction from 'fraction.js';

如果有e小数问题,先转成小数,再转成字符串,用Fraction处理,Fraction参数里尽量处理成字符串。否则会丢失精度。另外如果是无限小数,可以用分数表示。

// 将科学计数法转为普通小数字符串 例:把 7.85e-9 转成 "0.00000000785" 这个纯十进制字符串,再传给 Fraction。 function scientificToDecimal(num) { // 利用 toLocaleString 或手动转换,避免科学计数法 const str = num.toString(); if (!str.includes('e')) return str; const [base, exp] = str.split('e'); const exponent = parseInt(exp, 10); const digits = base.replace('.', '').replace('-', ''); const isNegative = num < 0; const sign = isNegative ? '-' : ''; // 计算小数点位置 const baseDotIndex = base.indexOf('.'); const actualDotPos = (baseDotIndex === -1 ? base.length : baseDotIndex) + exponent; let result; if (actualDotPos <= 0) { // 小数点在数字前面,需要补零 result = '0.' + '0'.repeat(-actualDotPos) + digits; } else if (actualDotPos >= digits.length) { // 小数点在数字后面,是整数 result = digits + '0'.repeat(actualDotPos - digits.length); } else { result = digits.slice(0, actualDotPos) + '.' + digits.slice(actualDotPos); } return sign + result; }

用法

let a=new Fraction(scientificToDecimal(String(num)))

let b=new Fraction(1, 3) //分数 1/3

a.sub(b)

http://www.jsqmd.com/news/1240451/

相关文章:

  • 南京建邺亲测靠谱体态店!十年老店矫正真的不套路 - 林州鸿途网络
  • OpenAI 的数学天才在沙盒里学会了越狱:Erdős 猜想模型逃逸事件,比我预期的严重得多
  • Python 元类完全指南:从 type 到 ORM 框架实战
  • 2026 康跃转运|厦门非急救病人护送,长短途接送,持证医护全程监护 - 平台推荐官
  • RFM 模型工程化落地:用户分层从 Excel 到自动化标签系统
  • 会编网络:Python 异步责任链架构改造全解析
  • 2026年罗杰杜彼 中国区售后服务网络更新优化 全国60+门店地址及电话汇总 - 亨得利中国服务中心
  • 《键盘沉浸式样式》四、状态管理V2与ArkTS编译踩坑修复指南
  • OV单域名SSL证书有优惠吗?2026年企业省钱攻略来了 - 麦麦唛
  • 深入解析TI C6000 GPIO寄存器:从内存映射到中断配置的底层驱动实践
  • 经营管理的分水岭:从解决问题到设计机制
  • 调查问卷设计核心原则与高级技巧
  • 消费参考|2026 海口大平层设计机构实测对比:海岛气候适配能力成分水岭 - 互联网科技品牌测评
  • Dify-tool-service:AI应用开发的模块化工具集实战指南
  • ATT Business 新推无线套餐,终极 3.0 含无限热点流量,低至 75 美元!
  • 告别选择困难!2026 年最值得买的真空干燥箱品牌 ** 深度解析 - 品牌推荐大师1
  • 深入解析I2C寄存器:从时钟配置到实战避坑指南
  • Unity安卓打包与真机调试全流程:从环境配置到连接失败解决方案
  • 可穿戴 AI 多传感器异构融合架构:IMU + PPG + 温度信号的时序对齐与特征级融合方案
  • 腕表送修避坑宝典:宝珀全国**维修网点地址+400热线完整汇总(新版) - 亨得利腕表服务中心
  • 心脏信号通路抗体如何解密心肌调控网络?
  • 2026年罗杰杜彼中国区售后服务网络更新优化,全国**售后热线以及线下网点地址 - 亨得利中国服务中心
  • MuMu模拟器优化与斗鱼活动技术解析
  • 南京劳力士名表回收 逸程全城上门当场结算 - 融媒生活
  • Python验证码实现与安全防护实战指南
  • ADB工具使用指南:从基础到高级调试技巧
  • 厦门大学Nat. Commu.:8分钟制得石墨烯气凝胶,电热真空升华干燥拓展高温合成新方法
  • 2026宁波绍兴全品类电子设备回收公司30分钟上门实测 - LYL仔仔
  • Power BI中关于度量值专用表单的建立
  • UE5自定义配置文件:基于UObject实现数据驱动配置管理