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

javascript小数乘法精确率问题

做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如:

100

JS里做小数的乘法运算时会出现浮点错误,具体可以测试一下: <script>alert(11*22.9)</script>

结果是251.89999999999998 而不是251.9 这个问题想必有很多人为之头痛。那么如何解决呢?

网上那些经常转载来,转载去的解决方式,其实都存在弊端,先看看网上那种弊端的解决方式吧。

1、<script>alert(11*(22.9*10)/10);</script> 解决问题的大概思路就是,先把因数放大为整数,最后再除以相应的倍数,这样就能得到正确的结果了。 

其实这种方式不完全正确,虽说可以解决一部分小数的乘法问题,但是还是有特例的,比如按照这种解决思路的话,小数点后面有几位小数必须扩大10的多少次方倍,如果这个值是个动态的,岂不是显得很繁琐。

下面给出万能解决方式。 

<script>    alert(parseFloat(10000.005*10000).toFixed(2));

    //结果是10000005.00

</script> 

此处借助toFixed()方法来四舍五入保留小数位。

只要乘数足够大,皆能解决!

相关文章:

  • JS 和 Java Date时间格式的转换
  • WebApp 的 meta 标签
  • css3pie 解决IE下CSS3的兼容性问题
  • CSS3的REM设置字体大小
  • 网页中导入特殊字体@font-face属性详解
  • js深拷贝和浅拷贝
  • jQuery.fn的作用是什么
  • js正则表达test、exec和match的区别
  • JavaScript 模块化编程 - Module Pattern
  • grunt搭建自动化的web前端开发环境
  • 系统默认alert弹出框域名title问题
  • 浅谈WEB安全性(前端向)
  • JS在线检测,cookie,子cookie
  • 常用的Javascript设计模式
  • 为什么要在引入的css或js后面加参数详解
  • 【剑指offer】让抽象问题具体化
  • - C#编程大幅提高OUTLOOK的邮件搜索能力!
  • C++回声服务器_9-epoll边缘触发模式版本服务器
  • CSS 专业技巧
  • Java|序列化异常StreamCorruptedException的解决方法
  • Spark学习笔记之相关记录
  • Vue全家桶实现一个Web App
  • 初探 Vue 生命周期和钩子函数
  • 罗辑思维在全链路压测方面的实践和工作笔记
  • 批量截取pdf文件
  • 嵌入式文件系统
  • 线性表及其算法(java实现)
  • 一加3T解锁OEM、刷入TWRP、第三方ROM以及ROOT
  • 阿里云移动端播放器高级功能介绍
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • ​Linux Ubuntu环境下使用docker构建spark运行环境(超级详细)
  • ​linux启动进程的方式
  • ​总结MySQL 的一些知识点:MySQL 选择数据库​
  • #绘制圆心_R语言——绘制一个诚意满满的圆 祝你2021圆圆满满
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $GOPATH/go.mod exists but should not goland
  • ( 用例图)定义了系统的功能需求,它是从系统的外部看系统功能,并不描述系统内部对功能的具体实现
  • (zt)基于Facebook和Flash平台的应用架构解析
  • (笔试题)合法字符串
  • (非本人原创)我们工作到底是为了什么?​——HP大中华区总裁孙振耀退休感言(r4笔记第60天)...
  • (附源码)springboot学生选课系统 毕业设计 612555
  • (机器学习-深度学习快速入门)第三章机器学习-第二节:机器学习模型之线性回归
  • (转)我也是一只IT小小鸟
  • .Net 知识杂记
  • .NET轻量级ORM组件Dapper葵花宝典
  • .NET微信公众号开发-2.0创建自定义菜单
  • .net项目IIS、VS 附加进程调试
  • @ 代码随想录算法训练营第8周(C语言)|Day57(动态规划)
  • @Autowired注解的实现原理
  • @软考考生,这份软考高分攻略你须知道
  • [Android Pro] Notification的使用
  • [CERC2017]Cumulative Code
  • [CISCN2019 华北赛区 Day1 Web5]CyberPunk --不会编程的崽
  • [CSAWQual 2019]Web_Unagi ---不会编程的崽
  • [docker] Docker容器服务更新与发现之consul