首页>动态>正文
为什么JS中0.1+0.2不等于0.3_世界要闻
2023-06-01 13:01:31    来源:博客园


(资料图)

当我们在计算机中使用浮点数进行计算时,特别是在使用二进制表示浮点数时,可能会出现舍入误差。这是由于计算机使用有限的位数来表示浮点数,而某些十进制数无法精确地表示为有限的二进制数。

0.1 和 0.2 都是无限循环的二进制数,在转换为浮点数时并不能完全准确地表示。将它们相加时,可能会出现舍入误差。因此,0.1 + 0.2 在 JavaScript 中的结果并不等于 0.3。

这是因为 0.1 在二进制中是一个无限循环的数,大约是 0.0001100110011001100110011001100110011001100110011...,而 0.2 在二进制中也是一个无限循环的数,大约是 0.001100110011001100110011001100110011001100110011...。当计算机在进行浮点数运算时,只能存储有限的位数,因此会发生舍入误差。

当需要在 JavaScript 中进行精确的十进制计算时,一种常见的方法是将数字转换为整数进行计算,然后再将结果转换回十进制。这可以通过乘以一个适当的倍数来实现。以下是一个例子:

// 将数字转换为整数进行计算const num1 = 0.1;const num2 = 0.2;const multipliedNum1 = num1 * 10;const multipliedNum2 = num2 * 10;const sum = multipliedNum1 + multipliedNum2;// 将结果转换回十进制const result = sum / 10;console.log(result);  // 0.3

在这个例子中,我们将 0.1 和 0.2 分别乘以 10,得到整数 1 和 2。然后我们对这两个整数进行求和,得到整数 3。最后,我们将整数 3 除以 10,将结果转换回十进制,得到 0.3。

除了将数字转换为整数进行计算的方法,使用内置的`toFixed()` 方法可以用于将浮点数四舍五入为指定小数位数的字符串表示。例如:

const num1 = 0.1;const num2 = 0.2;const sum = num1 + num2;const result = sum.toFixed(1);console.log(result);  // 0.3

这种方法适用于简单的加法、减法和乘法运算,毕竟数据进行了取舍,结果可能会有偏差。

另外,一些 JavaScript 库也提供了精确计算的功能,例如 BigNumber.js,这里就不展开介绍了。

关键词:

为什么JS中0.1+0.2不等于0.3_世界要闻

当我们在计算机中使用浮点数进行计算时,特别是在使用二进制表示浮点数时,可能会出现舍入误差。这是由于计2023-06-01

网红扎堆到麦地直播,帮忙还是添乱…媒体:农民的苦,不是流量的噱头|每日视点

网红割麦引争议,自媒体误导舆论。粮食问题严肃,不是儿戏。监管力度需加强,网红应守住底线。2023-06-01

【时快讯】女子捧场朋友店被提前帮点7472元餐 光服务费就700元

近日,广东深圳。女子捧场朋友开的人均420元饭店,朋友说不贵提前帮点餐6人花7472元。当事人陈女士介绍,自2023-06-01

世界要闻:网购的防晒衣无吊牌? 石狮市场监管部门提醒:消费者选购时应谨慎

网购的防晒衣无吊牌?石狮市场监管部门提醒:消费者选购时应谨慎2023-06-01

欢庆“六一”

■本报实习记者齐欣茹摄④5月31日,赛罕区东昇学校开展“学习二十大争做好队员”欢度“六一”我是小小石榴2023-06-01

南阳市淅川县第三小学:一起爱阅读,筑梦向未来

五月的天空流光溢彩,五月的大地欢歌笑语。5月31日上午,淅川县小学教育第三集团,在淅川县第三小学隆重举2023-06-01

环球短讯!中菲南海上演“浮标大战”,紧张局势发酵,三点给菲律宾当头一棒

中菲在南海上演“浮标大战”,释放了什么信号?三点让菲律宾清楚谁才是南海的主人。在国际形势日益严峻的情2023-06-01

天天简讯:3dmxl是什么格式_3dmx

3dmxl是什么格式,3dmx这个很多人还不知道,现在让我们一起来看看吧!1、刚学3D制作,暂时用不到太高级的渲2023-06-01

工作分析方法的优缺点_工作分析方法 天天观察

1、观察法观察法是工作人员在不影响被观察人员正常工作的条件下,通过观察将有关的工作内容、方法、程序、2023-06-01

国家林草局公布首批57个国家林草科普基地

中国青年报客户端讯(中青报·中青网记者李若一)记者5月30日从国家林草局获悉,近日,国家林业和草原局、2023-06-01

全球热头条丨玉兰花的花语是友谊长存_玉兰花的花语

1、玉兰花的花语:报恩,纯真自然的爱玉兰花的传说是一个很美的传说。2、玉兰花的花语是报恩。3、传说,在2023-06-01

【环球新要闻】nec笔记本电脑怎么样_nec笔记本

1、没有工具只能自己想办法,找一张废弃的会员卡片,不要太硬。2、沿着后盖缝隙找到卡口撬开即可!。本文到2023-06-01

美国出现新型病毒肆虐,感染率飙升36%!博主亲述“一晚咳醒20次”

最近大家应该都有种明显感受,国内“二阳”变多,公共场合内咳嗽声络绎不绝。在我们聚焦于新冠是否会再一次2023-05-31

中国贸促会会长任鸿斌会见特斯拉CEO马斯克

5月31日,中国贸促官方公众号发布消息称,中国贸促会会长任鸿斌会见特斯拉公司首席执行官埃隆·马斯克。双2023-05-31

欧菲光:5月30日公司高管李赟、林红平增持公司股份合计2万股

证券之星讯,根据5月31日市场公开信息、上市公司公告及交易所披露数据整理,欧菲光(002456)最新董监高及2023-05-31

世界最资讯丨武穆

1、“武”和“穆”都是中国古代谥法常用字。《汲冢周书》称:“威彊叡德曰武,克定祸乱曰武,刑民克服曰武2023-05-31

微资讯!建行信用卡积分清零吗 建行信用卡积分怎样查询

今天来聊聊关于建行信用卡积分清零吗,建行信用卡积分怎样查询的文章,现在就为大家来简单介绍下建行信用卡2023-05-31

当前通讯!创业找项目?客源客短视频项目助你翻身逆袭圆你创业梦!

过去我们讲没啥干,干饭店;现在,没啥干,干短视频。为啥?投入低,回报高。互联网时代,只要有了流量,根2023-05-31

多肉中的“兔耳家族”-当前关注

多肉植物的品种很多,不同品种呈现出来的形态不同,很多人都喜欢可爱又萌的多肉植物,今天要为大家介绍多肉2023-05-31

级配碎石和级配沙石_级配砂石和级配碎石有什么区别 各自的主要用途

1、级配砂石和级配碎石主要区别在于其中的集料。2、级配砂石的主要用途:人工级配是配合比是砾石(20mm-40m2023-05-31

采用直瀑式前脸 全新东风本田英仕派官图发布 焦点热讯

日前,编辑从官方获得全新东风本田英仕派官图。内饰方面,新车整体设计基本与全新雅阁保持了一致,全新“T2023-05-31

天天看热讯:国泰空姐被曝普遍不服气! 向被开除的三个女生表达了惋惜之情

国泰空姐被曝普遍不服气!向被开除的三个女生表达了惋惜之情,空姐,国泰,粤语,被开除,普通话,航空公司2023-05-31

全球即时看!万和同创游资团队再获新股权账户名额

近期,永丰金证券(亚洲)有限公司发布声明公告,表示该公司已开放游资股权账户名额,合作游资为下列机构:2023-05-31

巴黎时装周群星云集,刘亦菲柔情,山谷崇拜凌热烈,碰撞魅力无敌

谷爱凌的西装、皮夹克和裤子酷炫有型,很符合他的个性。这一次的时装周也差不多,有着人间的美,来自天上的2023-05-31

苹果因发布虚假广告,被北京市场监管部门行政处罚20万元

财经网科技5月31日讯,苹果电子产品商贸(北京)有限公司因发布虚假广告被北京市东城区市场监督管理局处以22023-05-31