3.数字型 number

本文参考 JavaScript Number isFinite() 方法 | 菜鸟教程

包含整数(整形)与小数(浮点数),包含负值

本文并非列出了数字型的所有用法,如果想深究的话可以看一下这个 Number - JavaScript | MDN

目录

1  改变进制

1.1  二进制

1.2  八进制

1.3  十六进制

2  正值最大值与最小值

3  特殊值

3.1  无穷大 Infinity

3.2  负无穷大 -Infinity

3.3  非数值 NaN

4  常用内置方法

4.1  转换为字符串 toString()

4.2  判断是否为整数 Number.isInteger()

4.3  保留指定位数小数 toFixed()

4.4  将数字保留指定长度 toPrecision()

5  不常用内置方法

5.1  判断数值是否为有限的数字 Number.isFinite()

5.2  指数计数法表示数字 toExponsential()

5.4  判断是否为安全整数 Number.isSafeInteger()

6  小数的精度问题

7  下划线表示数字


1  改变进制

默认是10进制,还可以定义其他进制

1.1  二进制

在数字前加0b表示2进制

10101相当于十进制的 1+0*2+1*4+0*8+1*16 = 21

1.2  八进制

以0开头表示8进制,这个表示八进制的77

相当于10进制的 7*8+7 = 63

我们验证一下,在JS中输出默认为10进制

1.3  十六进制

在数字前加0x表示16进制

F3相当于10进制的 15*16+3 = 243

2  正值最大值与最小值

Number.MAX_VALUE是最大值,Number.MIN_VALUE是最小值,我们打印出来看一下

正值是不能超过这个范围的,负值就是反过来,最大不超过-5e-324,最小不超过-1.7976931348623157e+308

如果数值超出了这个范围很多的时候,会被认定为无穷大或无穷小,因为位数太小会被直接隐藏起来

3  特殊值

3.1  无穷大 Infinity

Infinity本身就是一个数值型变量,如果我们将这样设置Infinity是无效的

我们同样可以将其设置给另一个变量

我们可以通过typeof确定变量类型,typeof相当于python中的type

发现确实是数值型

typeof后面跟的括号可写可不写,不写给个空格就行

我们现在让可用最大数值*2

3.2  负无穷大 -Infinity

就是对无穷大加了一个负值

3.3  非数值 NaN

NaN(Not a Number)表示不是一个数值的值,但是它本身的类型是number

NaN多出现在非数值运算中,比如

计算中涉及数值算不了的(null能算出来,后面会提到),都会变成NaN

我们可以通过 isNaN()这个方法验证是不是NaN

第一个是NaN,所以返回true,第二个不是NaN,所以返回false

总的来说,如果是数字isNaN()返回false,如果不是数字isNaN()返回true

NaN是不等于自身的,我们在某些情况下进行排错需要注意这个问题

4  常用内置方法

4.1  转换为字符串 toString()

4.2  判断是否为整数 Number.isInteger()

如果是字符则会判定为false

10.0 同样判定为整数

4.3  保留指定位数小数 toFixed()

我们现在保留两位小数

注意会四舍五入,且返回值为字符串

如果不给参数就是保留整数,同样是四舍五入

4.4  将数字保留指定长度 toPrecision()

我们现在只让它有三个数

注意返回值为字符串且四舍五入

不给参数就是保留所有位数且转换为字符串

如果给的保留位数超出本身含有的位数,它在后面会补0

5  不常用内置方法

5.1  判断数值是否为有限的数字 Number.isFinite()

5.2  指数计数法表示数字 toExponsential()

我们注意这里的类型变为了字符串

参数可以添加保留小数,如果不写就是保留所有小数,我们现在保留一位小数

这里我们注意保留小数是四舍五入的

当整数位够多时是这样的

5.4  判断是否为安全整数 Number.isSafeInteger()

其余与判定整数功能相同

6  小数的精度问题

在我们计算小数的时候会出现这种情况,很多语言都会出现这种情况,处理方法也是一致的

整数不会有这种问题,所以我们可以给要加的数值乘一个很大的数,然后再除很大的数,比如

7  下划线表示数字

比如1000可以写成1_000

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Suyuoa

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值