位置: 编程技术 - 正文

跟我学习javascript的浮点数精度(java script怎么学)

编辑:rootadmin

推荐整理分享跟我学习javascript的浮点数精度(java script怎么学),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:教程java,java script教程,java script课程,java script教程,java script,java learning,java script怎么学,java script怎么学,内容如对您有帮助,希望把文章链接给更多的朋友!

大多数编程语言都有几种数值型数据类型,但是JavaScript却只有一种。你可以使用typeof 运算符查看数字的类型。不管是整数还是浮点数,JavaScript都将它们简单地归类为数字。

事实上,JavaScript中所有的数字都是双精度浮点数。这是由IEEE标准制定的位编码数字——即“doubles”。如果这一事实使你疑惑JavaScript是如何表示整数的,请记住,双精度浮点数能完美地表示高达位精度的整数。从?9 (?)到9 ()的所有整数都是有效的双精度浮点数。因此,尽管JavaScript中缺少明显的整数类型,但是完全可以进行整数运算。 大多数的算术运算符可以使用整数、实数或两者的组合进行计算。

然而位算术运算符比较特殊。JavaScript不会直接将操作数作为浮点数进行运算,而是会将其隐式地转换为位整数后进行运算。(确切地说,它们被转换为位大端(big-endian)的2的补码表示的整数。)以按位或运算表达式为例:

看似简单的表达式实际上需要几个步骤来完成运算。如前所述,JavaScript中的数字8和1都是双精度浮点数。但是它们也可以表示成位整数,即位0、1的序列。整数8表示为位二进制序列如下所示:

你自己也可以使用数字类型的toString方法来查看:

(8).toString(2) //""

toString方法的参数指定了其转换基数,此例子以基数2(即二进制)表示。结果值省略了左端多余的0(位),因为它们并不影响最终值。 整数1表示为位二进制如下所示:

跟我学习javascript的浮点数精度(java script怎么学)

按位或运算表达式合并两个比特序列。只要参与运算的两位比特中任意一位为1,运算结果的该位就为1。以位模式表示的结果如下:

这个序列表示整数9。你可以使用标准的库函数parseInt验证,同样以2作为基数:

(同样,前导0位是不必要的,因为它们并不影响运算结果。) 所有位运算符的工作方式都是相同的。它们将操作数转换为整数,然后使用整数位模式进行运算,最后将结果转换为标准的JavaScript浮点数。一般情况下,JavaScript引擎需要做些额外的工作来进行这些转换。因为数字是以浮点数存储的,必须将其转换为整数,然后再转换回浮点数。然而,在某些情况下,算术表达式甚至变量只能使用整数参与运算,优化编译器有时候可以推断出这些情形而在内部将数字以整数的方式存储以避免多余的转换。

关于浮点数的最后警示是,你应该对它们保持时刻警惕。浮点数看似熟悉,但是它们是出了名的不精确。甚至一些看起来最简单的算术运算都会产生不正确的结果。

0.1+0.2; 0.

尽管位的精度已经相当高了,但是双精度浮点数也只能表示一组有限的数字,而不能表示所有的实数集。浮点运算只能产生近似的结果,四舍五入到最接近的可表示的实数。当你执行一系列的运算,随着舍入误差的积累,运算结果会越来越不精确。舍入也会使我们通常所期望的算术运算定律产生一些出人意料的偏差。例如,实数满足结合律,这意味着,对于任意的实数x,y,z,总是满足(x + y) + z = x + (y + z)。

然而,对于浮点数来说,却并不总是这样。

浮点数权衡了精度和性能。当我们关心精度时,要小心浮点数的局限性。一个有效的解决方法是尽可能地采用整数值运算,因为整数在表示时不需要舍入。当进行货币相关的计算时,程序员通常会按比例将数值转换为最小的货币单位来表示再进行计算,这样就可以以整数进行计算。例如,如果上面的计算是以美元为单位,那么,我们可以将其转换为整数表示的美分进行计算。

对于整数运算,你不必担心舍入误差,但是你还是要当心所有的计算只适用于?~的整数。

提示

JavaScript的数字都是双精度的浮点数。 JavaScript中的整数仅仅是双精度浮点数的一个子集,而不是一个单独的数据类型 位运算符将数字视为位的有符号整数。

标签: java script怎么学

本文链接地址:https://www.jiuchutong.com/biancheng/384611.html 转载请保留说明!

上一篇:跟我学习javascript的严格模式(教程java)

下一篇:跟我学习javascript的隐式强制转换(java script入门)

  • 委托贷款利息收入需要缴纳增值税么
  • 房产税城镇土地使用税税率
  • 企业间无偿划转资产,非关联方经营
  • 出口商品认证
  • 金蝶利润表没有数据怎么办
  • 应征增值税不含税销售额(3%征收率)怎么填2020年
  • 劳务报酬现金 过账
  • 快消品行业成本结转方法
  • 固定资产账面价值公式
  • 销售商品房属于什么税
  • 银行收到对方付款的会计分录
  • 记账汇率是什么意思
  • 产权转移书据印花税申报期限
  • 事业单位职工福利费支出范围
  • 营业执照印花税是什么意思啊
  • 发票抵扣联什么时候用
  • 营改增后建筑服务包括内容
  • 个人定期存款利率怎么算
  • 月销售额不超10万,免征教育费附加分录
  • 分公司发生修理费能否在总公司列支?
  • 装修公司购入材料计入什么科目
  • 网店提现要多久能到账
  • 待摊费用当月增加
  • 所得税汇算清缴补税的会计处理
  • 2021windows10专业版
  • 行政事业单位职工体检依据
  • win7为什么还有人用
  • php curl_multi_init
  • 预收的购货款属于收入吗
  • 滴水观音的养殖方法选好浇水
  • 增值税发票与实际差异五毛钱
  • php实现购物车功能的方法
  • 期末应交增值税转入未交增值税
  • 报个税时显示扣缴单位无有效的税费种认定信息
  • php与ajax交互
  • css 100vw、100vh出现滚动条怎么解决
  • 人工智能导论课后题答案
  • 对 ChatGLM-6B 做 LoRA Fine-tuning
  • Deep Learning Tuning Playbook(深度学习调参手册中译版)
  • 热闻丨ChatGPT会替代你我吗?让它写了封情书后,我得到答案
  • dpkg -s命令
  • 防抖节流实现原理
  • thinkphp模糊查询
  • 休产假期间社保个人部分怎么办
  • 款付了对方没开发票咋办
  • 存续分立会计处理原则
  • 支付中间人佣金违法吗
  • 增值税发票的认证
  • 数据库触发器db2什么意思
  • 应收票据到期后账务处理
  • 固定资产的主要风险和关键控制点有哪些?
  • 房地产个税是什么意思
  • 暂估入库账务处理举例
  • 金税盘服务费如何抵扣
  • 房地产企业销售房屋印花税税率
  • 电梯折旧率多少
  • 清算所得税计税基础
  • 处置固定资产取得的净收益属于当期的收入
  • 银行汇票后面怎样背书盖章
  • 提取坏账会计分录怎么写
  • sql参数化还是被注入了
  • xp输入法图标消失
  • linux进程管理实验总结
  • win7系统所有软件打不开
  • win8.1卸载软件在哪里
  • 编写一个简单的shell
  • js动态加载图片
  • androidsocket原理
  • 显示网络配置的命令
  • Emeditor与dos(cmd)经典使用技巧之批量生成网页
  • nodejs cli
  • javascript中数组的方法
  • js优化108条建议
  • 上海市税务局招聘
  • 网上税务营业厅
  • 四川灵活就业医保每月返多少钱
  • 郑州高新税务局
  • 税务非正常认定条件
  • 大企业如何做好工作
  • 重庆外经证网上报验流程及时间
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设