首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    为什么0.1+0.2不等于0.3?

    但是,在光怪陆离的计算世界中,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意到 0.1 + 0.2 不等于 0.3 的奇怪行为。...Exponent(指数)表示小数点需要向左或向右移动的步数。 现在,有两种显示浮点数的方法:单精度和双精度。在进行浮点运算时,单精度使用 32 位,而双精度使用 64 位。...与许多其他编程语言不同,JavaScript 并未定义不同类型的数字数据类型,而是始终遵循国际 IEEE 754 标准,将数字存储为双精度浮点数。...第一步是将十进制的 0.1 转换为二进制的 0.1。首先将 0.1 乘以 2,然后将小数点前的数字分离出来,得到其相应的二进制数。 ? 重复此操作至 64 位。...这里,11 代表我们要使用的 64 位表示的指数位数,-4 代表科学计数中的指数。 所以最终数字 0.1 的表示形式是: ? 同理,0.2 表示为: ? 将两个数相加,得到: ?

    1.7K20

    原来编程语言是这么算的……

    但是,在光怪陆离的计算世界中,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意到 0.1 + 0.2 不等于 0.3 的奇怪行为。...Exponent(指数)表示小数点需要向左或向右移动的步数。 现在,有两种显示浮点数的方法:单精度和双精度。在进行浮点运算时,单精度使用 32 位,而双精度使用 64 位。...与许多其他编程语言不同,JavaScript 并未定义不同类型的数字数据类型,而是始终遵循国际 IEEE 754 标准,将数字存储为双精度浮点数。...第一步是将十进制的 0.1 转换为二进制的 0.1。首先将 0.1 乘以 2,然后将小数点前的数字分离出来,得到其相应的二进制数。 ? 重复此操作至 64 位。...这里,11 代表我们要使用的 64 位表示的指数位数,-4 代表科学计数中的指数。 所以最终数字 0.1 的表示形式是: ? 同理,0.2 表示为: ? 将两个数相加,得到: ?

    1.2K10

    你不会知道编程语言会把0.1+0.2算成多少

    但是,在光怪陆离的计算世界中,运算方式却大相径庭。 我最近开始用 JavaScript 进行编码,在阅读数据类型时,我注意到 0.1 + 0.2 不等于 0.3 的奇怪行为。...Exponent(指数)表示小数点需要向左或向右移动的步数。 现在,有两种显示浮点数的方法:单精度和双精度。在进行浮点运算时,单精度使用 32 位,而双精度使用 64 位。...与许多其他编程语言不同,JavaScript 并未定义不同类型的数字数据类型,而是始终遵循国际 IEEE 754 标准,将数字存储为双精度浮点数。...第一步是将十进制的 0.1 转换为二进制的 0.1。首先将 0.1 乘以 2,然后将小数点前的数字分离出来,得到其相应的二进制数。 ? 重复此操作至 64 位。...这里,11 代表我们要使用的 64 位表示的指数位数,-4 代表科学计数中的指数。 所以最终数字 0.1 的表示形式是: ? 同理,0.2 表示为: ? 将两个数相加,得到: ?

    1.2K20

    JavaScript数值

    概述 JavaScript 只有一种数值类型,书写数值时带不带小数点均可。超大或超小的数可通过科学计数法来写。 JavaScript 数值始终是 64 位的浮点数。...【注】一些 JavaScript 版本会把带有前导零的数解释为八进制。 对象 :数值可以是对象,但最好不要把数值创建为对象,它会拖慢执行速度。...当使用 === 运算符时,相等数值是不相等的,因为 === 运算符需要类型和值同时相等。 更糟的是两个对象是无法比较的。 2....toExponential() :返回字符串值,它包含已被四舍五入并使用指数计数法的数字。参数定义小数点后的字符数。该参数是可选的。如果您没有设置它,JavaScript 不会对数字进行舍入。...【注】在 JavaScript 内部使用 valueOf() 方法可将 Number 对象转换为原始值。 2.2 全局方法 Number() :可用于把 JavaScript 变量转换为数值。

    96320

    小小的 float,藏着大大的学问

    十进制数转二进制采用的是除 2 取余法,比如数字 8 转二进制的过程如下图: ? 接着,我们看看「整数类型」的数字在计算机的存储方式,这其实很简单,也很直观,就是将十进制的数字转换成二进制即可。...既然提到了科学计数法,我再帮大家复习一下,比如有个很大的十进制数 1230000,我们可以也可以表示成 1.23 x 10^6,这种方式就称为科学记数法,该方法在小数点左边只有一个数字,而且把这种整数部分没有前导...-3),其中,最为关键的是 000101 和 -3 这两个东西,它就可以包含了这个二进制小数的所有信息,000101 称为尾数,即小数点后面的数字,-3 称为指数,指定了小数点在数据中的位置。...我们在 JavaScript 里执行 0.1 + 0.2,你会得到下面这个结果: ?...结果和我们前面推到的类似,因为 JavaScript 对于数字都是使用 IEEE 754 标准下的双精度浮点类型来存储的,而我们二进制只能精准表达 2 除尽的数字 1/2, 1/4, 1/8,但是例如

    1.8K20

    2021年7月总结

    document.getElementsByName(“element”):可获取带有指定名称的对象的集合,例如name为element的input标签对象。...id=$1 ^:输入的开头 以user/开头请求的地址 (w+):提取所有的字母,传给$1 /?:可选斜杠 $:结束符 替换为:user.php?...id=* 注意:有些apache(具体哪个版本忘啦)不兼容简写模式 w+ => [a-zA-Z_-] 9.php 中将$price 格式化小数并保留两位小数 number_format(“带格式化的数字..."; //100.000.000,00 正好跟第二个相反 定义和用法 number_format() 函数通过千位分组来格式化数字。 注释:该函数支持一个、两个或四个参数(不是三个)。...要格式化的数字。如果未设置其他参数,则数字会被格式化为不带小数点且以逗号(,)作为千位分隔符。 decimals 可选。规定多少个小数。如果设置了该参数,则使用点号(.)作为小数点来格式化数字。

    2.4K10

    计算机组成原理-计数制与定点数编码

    进位计数制 r进制转10进制 设r进制数从左到右分别为 R(n) R(n-1) R(n-2) … R(1) R(0),则该进制数转换为十进制是 R(n)×r^n + R(n-1)×r^(n-1) + ....,最后得到的数字就是r进制数 例如将 19 转换为 2 进制,不断地除以 2,得到的余数分别是 19 ÷ 2 = 9 ...... 1 9 ÷ 2 = 4 ...... 1 4 ÷ 2 = 2 .....0.1 转换成10进制是 0.1 × 2^(-1) = 0.5 十进制转r进制时,不断地将小数部分乘上r,并取整数部分,例如将 0.123 转换为 8 进制 0.123 × 8 = 0.984 0.984...因此转换结果是0.07676… 转换时出现无限小数是正常的,只需要保留有效位数即可 真值与机器数 真值是符合人类习惯的数字,是带有符号的 机器数是存粹的以数字形式保存的数字,它不带有任何符号,而是把符号也抽象为一个数字...如上图所示,当符号相同时,随着数字的增大,移码数值位也在不断变大。

    1.2K50

    用JavaScript实现正整数十进制转二进制

    上面的文字太多,可能比较绕,我们可以看看下面的这张图: 以十进制的123,转换为二进制的流程。...这是因为在JavaScript中,数字长度超过21位时,将会自动将数字转换为科学计数法来表示。...另外值得一提的是,在JavaScript中,当数字2的53次方时,数值将会失去精度,导致数字的值存在偏差。...首先我们需要实现一个大数除法的函数,但是这个函数并不是完整去实现除法的计算,因为在十进制转二进制的情况下,并不需要去计算小数点后面的结果,只需要知道整数的商和余数即可,所以在进行大数相除的时候,当计算到需要小数点的时候...100000000000000000000000000000000000000000000000000100 //函数转换结果: 100000000000000000000000000000000000000000000000000011 以后有空再写十进制的浮点数和负数转二进制以及二进制转换为十进制的实现方式吧

    1K120

    (二)《数字电子技术基础》——数制

    目录 数制介绍 数制转换 各进制转换为十进制 十进制转换为其他进制 十进制转二进制 十进制转其他进制 二进制与八进制之间的转换 二进制转八进制 八进制转二进制 二进制与十六进制之间的转换       ...数字系统中经常使用的数制有: 十进制(D: Decimal) 二进制(B: Binary) 八进制(O: Octal) 十六进制(H: Hexadecimal)等         由于目前在微型计算机系统中普遍采用...数制转换 各进制转换为十进制 十进制转换为其他进制 十进制转二进制         整数部分:除基取余,逆序排列。...二进制正负数及其表示 二进制算术运算         在数字电路中,1位二进制数码的0和1 不仅可以表示数量的大小,而且可以表示两种不 同的逻辑状态: 当两个二进制数码表示两个数量大小时, 它们之间的数值运算称为算术运算...在定点运算的情况下,以最高位作为符号位,正数为0, 负数为1,定点表示可分为整数定点和小数定点,和 C 语言里的整形与浮点型有点类似,可以理解为小数点位置不变。

    1.5K21

    「JS小技巧」随机不重复的ID,模板标签替换,XML与字符串互转,快速取整

    Math.random().toString(36).substr(2,n); // 截取小数点后的部分,n在实际应用中修改成你需要的位数 第二步使用Date.now()取得目前的毫秒数,总共有13位数...03 String 转 XML、XML 转 String 在JavaScript里如果直接读取XML,得到的会是一些XML节点构成的对象,如果要使用像是replace()..等字串的操作就必须转换成字串...); 字串String转XML stringToXML = (new DOMParser()).parseFromString(xmlString, "text/xml"); 04 快速取整数 在JavaScript...中取整数,最常见的不外乎就是Math.round()四舍五入、Math.floor()返回小于等于给定数字的最大整数和 Math.ceil()函数返回大于或等于一个给定数字的最小整数(无条件进位)三种方法...,不过如果通过两个「按位取反两次」~~(两个蚯蚓符号),也可以做到无条件舍去小数点的效果,这也是最快可以取整数的方法,下方的代码会先取得一个0~100的随机数,然后取出整数的部分。

    3.3K20

    数据类型、运算符、流程控制语句

    最新的 ECMAScript 标准定义了 7 种数据类型: 6种原始类型(也称基本数据类型): Number:整数和浮点数值(所谓浮点数值,就是该数值中必须包含一个小数点,并且小数点后面必须至少有一位数字...(1)含义 NaN是 JavaScript 的特殊值,表示“非数字”(Not a Number),主要出现在将字符串解析成数字出错的场合。...isNaN()在接收到一个值之后,会尝试将这个值转换为数值。某些不是数值的值会直接转换为数值,例如"10"和"Boolean"。而任何不能被转换为数值的值都会导致这个函数返回true。...2') // 3.14 如果字符串符合科学计数法,则进行相应转换 parseFloat ('3.14abc') // 3.14 如果字符串包含不能转换为浮点数的字符,则不再往后转换,返回已经转好的部分...在转换不同的数据类型时,相等和不相等操作符遵循下列基本规则: 如果有一个操作数是布尔值,则在比较相等性之前先将其转换为数值——false转换为0,而true转换为1; false == 1 //false

    2.3K40

    爬虫不得不学之 JavaScript 入门篇

    JavaScript 也是一门脚本语言,和 python 一样,都是解释性语言,即每运行一行代码就解释一行,只不过 JavaScript 的解释器在浏览器内部。...我在学了之后也跟着弄了两个小的页面游戏,怀念童年。 ? ? 2.JavaScript组成 ?...5.2 其他类型转 Number 类型 使用 Number() ,当转不了的时候会返回 NaN,说明不是数值,在将 Boolean 类型转 Number 时,true会转为 1, false 会转为 0...这个方法不支持将数字开头带有其它字符的字符串转为数值类型,如 "12df" ? 使用 parseInt() ,只能转为整数,而且转不了Boolean。但是可以转以数字开头而带有字符的字符串。...需要注意的是:当字符串中有两个小数点的时候,只会转第二个小数点之前的数字,后面的都当作字符串 ? 使用 + 或 - 来将值取正或取负。这个的功能和 Number 差不多。 ?

    1.2K30

    JavaScript类型转换

    ---------0和NaN转false         3.String---------空字符串转false         4.Null----------null转false     B.转数字类型...        1.将一个数字字符串或者布尔值转为数字:                  Number(x):x为需要转换的变量;              带单位的无法转换如'200px','200cm...'均无法转换,无法转换的返回一个NaN              NaN不与任何数比较,NaN与任何数运算都为NaN,判断一个变量是不是NaN:isNaN(X)         2.将带单位的字符串去除单位后转为数字...            parseInt(x):把带有单位的数字字符串取出,无法识别小数点无法转小数点             parseFloat(x):把带有单位的数字字符串取出,可以识别小数点...    C.转字符串 2种             x.toString():将undefined和null之外的任意数据转为字符串             String(x):将任意数据转为字符串

    1.1K20

    数制

    数制是整个数字逻辑的基础,计算机只识别0,1。因此如何将我们现实生活中常用的十进制数转换为二进制,或者其他进制,以及掌握常用的几种数制是我们本篇文章的重点。...整数十进制转二进制:(除2逆取余) 例:将十进制数53转换为二进制数. ? 小数十进制转二进制:(乘2顺取整) 例:将十进制数0.6875转换为二进制数. ?...二进制转八进制和十六进制 二进制转成八进制时:以小数点为界,小数点左边往高位,小数点右边往低位,每三位为一组,不足三位的用0补充....二进制转成十六进制时:以小数点为界,小数点左边往高位,小数点右边往低位,每四位为一组,不足四位的用0补充....五、奇偶校验码:具有纠错能力的编码 编码方法:在源码组的基础上增加一个码位使码组中含1的个数为奇数(称为奇校验)或偶数(称为偶校验) ?

    1.3K50

    安利几个JS开发小技巧

    除非另有定义,否则 JavaScript 中的所有值都是'truthy',除了0,“”,null,undefined,NaN,当然还有false,这些都是**'falsy'** 我们可以通过使用负算运算符轻松地在..."; int = +int; console.log(int); // Result: 15 console.log(typeof int); Result: "number" 这也可以用于将布尔值转换为数字...3转换字符串 要快速地将数字转换为字符串,我们可以使用连接运算符+后跟一组空引号""。...更准确地说,此操作将删除小数点后面的任何内容,将浮点数截断为整数。 你可以使用~~来获得相同的舍入效果,如上所述,实际上任何位操作符都会强制浮点数为整数。...删除最后一个数字 按位或运算符还可以用于从整数的末尾删除任意数量的数字。这意味着我们不需要使用这样的代码来在类型之间进行转换。

    1.4K40

    excel常用操作

    直接拖拽是复制 按住shift拖拽是复制整体移动数据 删除重复值表格转置:复制 选择性粘贴 勾选转置ctrl+~:显示公式而不是数值储存格内换行:alt+enter21输入分数例如1/2时会自动识别成日期...:空格 #.# 小数点后有一个空格0:强制显示位数 #.### 显示小数点后三位,不管后面是不是0@:文字预留位置,显示文字*:重复符号直到填满单元格 *.重复....,:千,,:百万_:增加宽度 _)增加一个小括号的宽度前[颜色+编号] 后[绿色]22[DBNUM1]m"月"d"日" aaa 中文代替阿拉伯数字月日 周几 aaaa星期几ctrl+;:插入当前年月日...:在两个数之间产生随机数choose()rand():产生0~1的小数,不会有重复RANK():他能够将数字的排名单独显示在另一列,而且可以去除重名次。...=C3"有"and()or()sumproduct():乘积求和--:将文本转换为数字i33柏拉图,可快速完成34xlookup():在office365中才有

    12610
    领券