文档章节

解决JS中浮点数乘法错误问题

透笔度
 透笔度
发布于 2016/04/15 17:04
字数 248
阅读 160
收藏 1
alert(39.2*3);

我们直接结算,随后输出:

117.60000000000001

对于浮点数乘法出现计算错误,我们的解决思路就是*10,然后把结果/10

alert(39.2*10*3/10);

这样结果就正确了。

在网上找到的解释是:

 java和JavaScript中计算小数运算时,都会先将十进制的小数换算到对应的二进制,一部分小数并不能完整的换算为二进制,这里就出现了第一次的误差。待小数都换算为二进制后,再进行二进制间的运算,得到二进制结果。然后再将二进制结果换算为十进制,这里通常会出现第二次的误差。要避免这种情况呢,通常可以将小数同时扩大相同10的整倍数,完成计算后,在去掉之前添加的整倍数。

© 著作权归作者所有

透笔度
粉丝 83
博文 128
码字总数 235452
作品 0
朝阳
前端工程师
私信 提问
JS四则运算与四舍五入精度问题及解决方案

一、Javascript精度问题业务背景 JS中 0.1+0.2 = 0.3000000000000004的问题,在很多业务场景里都是一个令人头痛的问题。尤其是在大型的电商企业,货币基金股票行业的网页中,JS四则运算和toF...

StevenLikeWatermelon
2018/11/06
0
0
Javascript浮点数运算及比较代码收集整理

以下代码转自:http://segmentfault.com/a/1190000000324193 浮点数加法: /** ** 加法函数,用来得到精确的加法结果 ** 说明:javascript的加法结果会有误差,在两个浮点数相加的时候会比较...

Jacky.Wang
2015/10/29
308
0
JavaScript 浮点数运算的精度问题

在 JavaScript 中整数和浮点数都属于 数据类型,所有数字都是以 64 位浮点数形式储存,即便整数也是如此。 所以我们在打印 这样的浮点数的结果是 而非 。在一些特殊的数值表示中,例如金额,...

xiaogg
01/07
46
0
解决JS浮点数运算结果不精确的Bug

最近在做项目的时候,涉及到产品价格的计算,经常会出现JS浮点数精度问题,这个问题,对于财务管理系统的开发者来说,是个非常严重的问题(涉及到钱相关的问题都是严重的问题),这里把相关的...

dingFY
07/31
0
0
js数值计算的处理,防止精度误差

(解决方法一:重写浮点运算的函数) //除法函数,用来得到精确的除法结果 //说明:javascript的除法结果会有误差,在两个浮点数相除的时候会比较明显。这个函数返回较为精确的除法结果。 //调...

纯洁徐
2015/01/30
5K
2

没有更多内容

加载失败,请刷新页面

加载更多

CentOS7.6中安装使用fcitx框架

内容目录 一、为什么要使用fcitx?二、安装fcitx框架三、安装搜狗输入法 一、为什么要使用fcitx? Gnome3桌面自带的输入法框架为ibus,而在使用ibus时会时不时出现卡顿无法输入的现象。 搜狗和...

技术训练营
昨天
5
0
《Designing.Data-Intensive.Applications》笔记 四

第九章 一致性与共识 分布式系统最重要的的抽象之一是共识(consensus):让所有的节点对某件事达成一致。 最终一致性(eventual consistency)只提供较弱的保证,需要探索更高的一致性保证(stro...

丰田破产标志
昨天
8
0
docker 使用mysql

1, 进入容器 比如 myslq1 里面进行操作 docker exec -it mysql1 /bin/bash 2. 退出 容器 交互: exit 3. mysql 启动在容器里面,并且 可以本地连接mysql docker run --name mysql1 --env MY...

之渊
昨天
10
0
python数据结构

1、字符串及其方法(案例来自Python-100-Days) def main(): str1 = 'hello, world!' # 通过len函数计算字符串的长度 print(len(str1)) # 13 # 获得字符串首字母大写的...

huijue
昨天
6
0
PHP+Ajax微信手机端九宫格抽奖实例

PHP+Ajax结合lottery.js制作的一款微信手机端九宫格抽奖实例,抽奖完成后有收货地址添加表单出现。支持可以设置中奖概率等。 奖品列表 <div class="lottery_list clearfix" id="lottery"> ......

ymkjs1990
昨天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部