javascript小数乘法精确率问题
做前端页面开发的经常会遇到数值的乘法计算,带小数位计算会出现值溢出的问题,如:
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()方法来四舍五入保留小数位。
只要乘数足够大,皆能解决!
javascript小数乘法精确率问题的更多相关文章
- js小数乘法精确率问题
研究拓扑图百分比乘法计算,带小数位计算会出现值溢出的问题 JS里做小数的乘法运算时会出现浮点错误: 结果是251.89999999999998 而不是251.9 这个问题想必有很多人为之头痛. 那 ...
- 【转】javascript 小数乘法结果错误处理
一.用js计算 12.32 * 7 结果是多少? 答案:86.24000000000001 为什么会出现这种问题?怎么解决? js在处理小数的乘除法的时候有一个bug,解决的方法可以是:将小数变 ...
- Javascript保证精度的小数乘法
众所周知,js的小数乘法很容易丢失精度,这是一件很恶心的事情.所以我写了这个方法,保证计算精度./** * js小数乘法 *@parameter arg1:被乘数(接受小数和整数) *@paramet ...
- javascript小数相减会出现一长串的小数位数的原因
javascript小数相减会出现一长串的小数位数的原因 <script> var a='38.8'; var b='6.8'; alert(parseFloat(a)-parseFloa ...
- 0.1+0.2不等于0.3,微信小程序云开发如何解决JavaScript小数计算精度失准的问题
先看图 这个是JavaScript语言自身存在的一个问题.说道这里不得不提一下网上流传的JavaScript搞笑图 我们在使用云开发来开发微信小程序的时候,会经常遇到JavaScript小数计算精度失 ...
- 精确率与召回率,RoC曲线与PR曲线
在机器学习的算法评估中,尤其是分类算法评估中,我们经常听到精确率(precision)与召回率(recall),RoC曲线与PR曲线这些概念,那这些概念到底有什么用处呢? 首先,我们需要搞清楚几个拗口 ...
- 准确率(Accuracy), 精确率(Precision), 召回率(Recall)和F1-Measure
yu Code 15 Comments 机器学习(ML),自然语言处理(NLP),信息检索(IR)等领域,评估(Evaluation)是一个必要的 工作,而其评价指标往往有如下几点:准确率(Accu ...
- javascript小数四舍五入
javascript小数四舍五入 1. function get(){ var s = 22.127456 + ""; var str = s.substring(0, ...
- Recall(召回率)and Precision(精确率)
◆版权声明:本文出自胖喵~的博客,转载必须注明出处. 转载请注明出处:http://www.cnblogs.com/by-dream/p/7668501.html 前言 机器学习中经过听到" ...
随机推荐
- webAppRootKey
web.xml中webAppRootKey ------------------------------------------------------------------------------ ...
- 【HELLO WAKA】WAKA iOS客户端 之一 APP分析篇
由于后续篇幅比较大,所以调整了内容结构. 全系列 [HELLO WAKA]WAKA iOS客户端 之一 APP分析篇 [HELLO WAKA]WAKA iOS客户端 之二 架构设计与实现篇 [HELL ...
- laravel php artisan migrate 数据迁移时出现的[HY000][1045]错误
(zz找了块一个小时才发现)主要的错误在于.env文件和database.php的配置不匹配. 1.找到.env文件 2.更改数据库表账密 3.改database.php的数据库账密 4.完成
- Oracle杀死死锁进程
查杀系统死锁的sql,最近想改造成存储过程,如下: CREATE OR REPLACE PROCEDURE HERO_KILLLOCKSESSION (OUT_COUNT OUT NUMBER, OU ...
- Hierarchyid(层次结构)数据类型
实例表结构 CREATE TABLE [dbo].[Emp]( ,), ), [Org] [hierarchyid], ) INSERT INTO Emp(Name,Org) VALUES('吴xx' ...
- 第五十四节,socketserver通讯模块实现并发操作,真多线程并发
socketserver通讯模块实现并发操作,基于select.epoll.socket.多线程,实现的正真多线程多并发 socketserver通讯模块底层调用的socket模块,只是它作了处理基于 ...
- 做一个视频播放器在没开始播放的时候有一张图片实际上就是拿一张图片盖住视频承载的屏幕当出发。play的时候图片隐藏 img
saxda 某个元素.style.class='';也可以是.className <!DOCTYPE html><html lang="en"><he ...
- Hibernate中session.get()和session.load()的区别
-- 翻译自https://www.mkyong.com/hibernate/different-between-session-get-and-session-load/ 很多时候你会发现,使用Hi ...
- Gentoo安装详解(一) -- 安装基本系统
前期准备 远程登录: 开启ssh服务: /etc/init.d/sshd start 设置密码: passwd 以便使用putty.ssh client远程登录上传stage等(有时在线下载很慢,而局 ...
- 1010 Robot Motion
Problem Description A robot has been programmed to follow the instructions in its path. Instructions ...