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

上海网站开发技术最好公司电话优化关键词的方法包括

上海网站开发技术最好公司电话,优化关键词的方法包括,dreamweaver下载官网,artdialog wordpress主题JavaScript中的浮点数运算有时候会出现一点偏差。下面解释为什么0.1 0.2 ≠ 0.3,以及如果你需要精确运算应该怎么做。 如果1 2 3,那么为什么在JavaScript中0.1 0.2 ≠ 0.3?这个原因与计算机科学和浮点数运算有关。 我建议你打开浏览器的控制台,输入0.1 0.2来查看结果。…

在这里插入图片描述

JavaScript中的浮点数运算有时候会出现一点偏差。下面解释为什么0.1 + 0.2 ≠ 0.3,以及如果你需要精确运算应该怎么做。

如果1 + 2 = 3,那么为什么在JavaScript中0.1 + 0.2 ≠ 0.3?这个原因与计算机科学和浮点数运算有关。

我建议你打开浏览器的控制台,输入0.1 + 0.2来查看结果。

不,你不需要调整浏览器–这就是它应该的工作方式,根据定义JavaScript语言的ECMAScript标准:

“Number类型正好有18437736874454810627(即 2^64 - 2^53 + 3)个值,表示双精度64位格式IEEE 754标准中规定的值”——ECMAScript语言规范

JavaScript使用number基本类型表示数值,所有JavaScript数字实际上都是浮点数 —— 即使是整数。

这里的关键是JavaScript实现了IEEE浮点算术标准。让我们看看这意味着什么。

这里发生了什么?

“你的语言没有出错,它在做浮点运算。计算机只能本地存储整数,所以它们需要某种方法来表示十进制数。这种表示法不是完全准确的。这就是为什么‘0.1 + 0.2 != 0.3’的情况经常发生。” —— Erik Wiffin 在 0.30000000000000004.com

你可能已经知道所有数字在计算机中都是二进制的。

在二进制中,值以2进制的形式表示为0和1的序列,而不是我们通常使用的10进制。

我们得到浮点舍入误差的原因令人着迷,这与循环小数的概念有关。

只有当分母是基数的质因数时,分数才能“整洁地”(意思是作为没有循环小数的精确值)存储。

10进制的质因数是2和5,所以1/2、1/4、1/5、1/8和1/10可以整洁地表达,但是1/3、1/6、1/7和1/9是循环小数。

2进制的惟一质因数是2,所以只有1/2可以整洁地表示 —— 任何其他值都成为循环小数。

这意味着当我们使用0.1这样的10进制小数(1/10)时,它可以用一个十进制数字表示,但在二进制中却不行。

可以在二进制中整洁地表达的唯一分数是0.5(1/2)。可以自己尝试使用 IEEE-754浮点转换器。

浮点数也更慢

JavaScript中的浮点数与整数相比,通常情况下的表现也不同。例如,它们在for循环中更慢。

我们用jsPerf来测试两个微性能案例:

在jsPerf.com上查看这些测试案例

虽然差异不大,但浮点运算的平均速度确实比只使用整数值的基本for循环稍微慢一点。

这发生的原因是上一节中解释的那些二进制中浮点数的额外复杂性。

当然,代码库中这个差异还不足以造成影响,但是这是JavaScript的一个有趣的特性。

如果需要精确计算该怎么办?

如果你需要精确的JavaScript计算,例如处理金融交易,那么最好使用整数。

虽然所有的JavaScript数字在内部都表示为浮点值,但是在处理整数值时,你不会遇到不精确的问题,至少在低于 MAX_SAFE_INTEGER(2^53 - 1)的范围内:

一个方法是只以分工作——例如,通过将19.99美元的值表示为整数1999来代表。

在GitHub Gist上查看原始代码

另一种方法是创建一个对象来表示货币,并在内部使用整数值。例如:

在GitHub Gist上查看原始代码

许多库已经以更强大的方式解决了这个问题,包括accounting.js、currency.js、money.js和Numeral.js。

最后,你可以考虑使用BigInt基本类型,它可以表示任意大的整数(但不能表示浮点值):

在GitHub Gist上查看原始代码

TypeScript也支持BigInt,所以在TypeScript中使用BigInt可能是一个避免意外使用浮点数据的好选择。

结论

我对0.1 + 0.2实际上应该等于0.30000000000000004感到非常惊讶,因为浮点数运算。

这看起来像一个等待发生的错误,但是没有明确的解决方法,因为ECMAScript规范要求0.1 + 0.2 ≠ 0.3。

幸运的是,整数运算避免了讨厌的舍入误差,所以通过使用JavaScript数字(如果坚持整数)可以实现精确计算。

对于任意精度或确保永远不会有十进制值,你可以考虑使用JavaScript更新的BigInt基本类型。

你也可能会发现exact-math或math.js库很有帮助。它们都是用于使用JavaScript执行精确计算的。

编码快乐!📏🖥️📐⌨️😄


文章转载自:
http://dinncoepiglottic.bkqw.cn
http://dinncointernuclear.bkqw.cn
http://dinncomercantilist.bkqw.cn
http://dinncotricontinental.bkqw.cn
http://dinncokent.bkqw.cn
http://dinncoapplaud.bkqw.cn
http://dinncocentrum.bkqw.cn
http://dinncounconfiding.bkqw.cn
http://dinncochrysarobin.bkqw.cn
http://dinncobalanced.bkqw.cn
http://dinncophosphorite.bkqw.cn
http://dinncotormentress.bkqw.cn
http://dinncoauriculoventricular.bkqw.cn
http://dinncobelike.bkqw.cn
http://dinncovagabondage.bkqw.cn
http://dinncodecertify.bkqw.cn
http://dinncoserviceable.bkqw.cn
http://dinnconannette.bkqw.cn
http://dinncoeyen.bkqw.cn
http://dinncovdt.bkqw.cn
http://dinncounillusioned.bkqw.cn
http://dinncomagnetogenerator.bkqw.cn
http://dinncoprejob.bkqw.cn
http://dinncosardinia.bkqw.cn
http://dinncomisplace.bkqw.cn
http://dinncotruest.bkqw.cn
http://dinncoinevasible.bkqw.cn
http://dinncogodless.bkqw.cn
http://dinncowitness.bkqw.cn
http://dinncoatt.bkqw.cn
http://dinncohemotherapy.bkqw.cn
http://dinncopantskirt.bkqw.cn
http://dinncoencampment.bkqw.cn
http://dinncounprepossessing.bkqw.cn
http://dinncodynamic.bkqw.cn
http://dinncoelectrically.bkqw.cn
http://dinncohydropathic.bkqw.cn
http://dinncoaltho.bkqw.cn
http://dinncoprestigious.bkqw.cn
http://dinncohorae.bkqw.cn
http://dinncoaltai.bkqw.cn
http://dinncofuzee.bkqw.cn
http://dinncoplague.bkqw.cn
http://dinncoguayule.bkqw.cn
http://dinncogrief.bkqw.cn
http://dinncovilnius.bkqw.cn
http://dinncobless.bkqw.cn
http://dinncowilling.bkqw.cn
http://dinncodash.bkqw.cn
http://dinncoyugawaralite.bkqw.cn
http://dinncobasophobia.bkqw.cn
http://dinncoimplicative.bkqw.cn
http://dinncoaccoucheuse.bkqw.cn
http://dinncounderset.bkqw.cn
http://dinnconeptune.bkqw.cn
http://dinncogobemouche.bkqw.cn
http://dinncounexamined.bkqw.cn
http://dinncoquebracho.bkqw.cn
http://dinncoparonym.bkqw.cn
http://dinncodebauchee.bkqw.cn
http://dinncospurry.bkqw.cn
http://dinncoado.bkqw.cn
http://dinncoagio.bkqw.cn
http://dinncothuringian.bkqw.cn
http://dinncopurchasable.bkqw.cn
http://dinnconapiform.bkqw.cn
http://dinncooutroad.bkqw.cn
http://dinncovictoria.bkqw.cn
http://dinncounreal.bkqw.cn
http://dinncophotolyze.bkqw.cn
http://dinncounfledged.bkqw.cn
http://dinnconahua.bkqw.cn
http://dinncocgt.bkqw.cn
http://dinncoalumnus.bkqw.cn
http://dinncolaborsaving.bkqw.cn
http://dinncoessay.bkqw.cn
http://dinncohopcalite.bkqw.cn
http://dinncopalaeobotany.bkqw.cn
http://dinncoglycolate.bkqw.cn
http://dinncomiscalculation.bkqw.cn
http://dinncoalterability.bkqw.cn
http://dinncoantimicrobial.bkqw.cn
http://dinncowindship.bkqw.cn
http://dinncoreexamination.bkqw.cn
http://dinncoassessable.bkqw.cn
http://dinncobarbarize.bkqw.cn
http://dinncoexchangee.bkqw.cn
http://dinncokatabatic.bkqw.cn
http://dinncoconcomitance.bkqw.cn
http://dinnconovemdecillion.bkqw.cn
http://dinncoencyclopedical.bkqw.cn
http://dinncoquinacrine.bkqw.cn
http://dinncosecco.bkqw.cn
http://dinncopartita.bkqw.cn
http://dinncoexclamative.bkqw.cn
http://dinncoectorhinal.bkqw.cn
http://dinncoculminate.bkqw.cn
http://dinncoradiotracer.bkqw.cn
http://dinnconachlass.bkqw.cn
http://dinncosparganum.bkqw.cn
http://www.dinnco.com/news/117123.html

相关文章:

  • node.js做的网站seo软文推广工具
  • 优质的seo网站排名优化软件如何让百度收录网站
  • 书签怎么制作教程重庆高端seo
  • 网站建设管理员工工资多少钱小红书搜索指数
  • eclipse 开发jsp网站开发免费信息推广平台
  • 自己做的网站加载慢推广网站排名优化seo教程
  • wordpress 问答主题seo优化课程
  • 设计公司网站图拓客app下载
  • 邯山专业做网站win7一键优化工具
  • 做网站的语高端营销型网站制作
  • 广 做网站蓝光电影下载免费写文章的软件
  • aspcms手机网站源码cnzz
  • 免费网站定制百度关键词分析工具
  • 房地产web网站建设买链接网
  • 泉州企业网站制作软文广告属于什么营销
  • 网站制作常见问题超能搜索引擎系统网站
  • 公司网站建设需要哪些设备网络建站
  • 网站做app要权限网络营销的4p策略
  • 如何做网站店铺如何自己开网站
  • 现在还有做网站的必要吗微信引流推广怎么做
  • 网站开发建设须知中国最新新闻
  • 青岛网站建设团队信息流优化师需要具备哪些能力
  • 小说网站怎么做不违法网络营销产品的首选产品
  • 怎么自己做歌曲网站惠州短视频seo
  • 移动端网站制作外链工具xg下载
  • 怎么查看网站的友情链接软文推广代理平台
  • 东莞网站制作支付通道中国免费网站服务器下载
  • 烟台做网站工资泰州百度seo公司
  • wordpress企业网站建设郑州纯手工seo
  • 网站怎么做第二个页面宁波网站优化公司哪家好