18100出多少取整_javascript中到底有多少种数值取整方法呢?

摘要:

在js脚本开发种,取整操作是我们经常遇见的操作之一,下文通过举例的方式将一一讨论这些取整方法,如下文所示

方式1:parseInt()

parseInt()方法的功能:将一个传入操作试着转换为一个整型,如果转换失败,则返回NaN

例:

parseInt("2019nov"), //2019

parseInt(""), //NaN

parseInt("0xB"), //11(十六进制)

parseInt(30.19), //30

parseInt(-30.19), //-30

parseInt("061"); //49(八进制数)

方式2:Math.trunc()

Math.trunc()数学函数会将参数中的小数部分删除掉,只返回整数

例:

Math.trunc(18.29) // 18

Math.trunc(55.94) // 55

Math.trunc(0.991) // 0

Math.trunc(-0.991) // -0

Math.trunc("-2.991") // -2

Math.trunc(NaN) // NaN

Math.trunc("maomao") //NaN

Math.trunc() // NaN

注意事项:

IE浏览器中没有这个方法,那么我们可以采用以下方法代替

Math.trunc = Math.trunc || function(x) {

if (isNaN(x)) {

return NaN;

}

if (x > 0) {

return Math.floor(x);

}

return Math.ceil(x);

};

方式3:~~number

使用双波浪线

~~的含义: 双按位非,此方法可以代替Math.trunc对数据取整

1、~~number

console.log(~~88.99) // 88

console.log(~~2.8888) // 2

console.log(~~8) // 8

console.log(~~[]) // 0

console.log(~~NaN) // 0

console.log(~~null) // 0

双波浪线应用注意事项:

1.取整的数据范围为: ±2^31-1

2.当转换失败时也会返回0

方式4:number|0

将数值和0(按位或)

console.log(80.92|0); // 80

console.log((-80.25)|0); // -80

方式5:number^0

^ (按位异或)

console.log(80.55^0); // 80

console.log((-80.55)^0); // -80

方式6: number<<0

<< (左移) 操作符会将第一个操作数向左移动指定的位数。向左被移出的位被丢弃,右侧用 0 补充。

console.log(80.25 << 0); // -80

console.log((-80.25) <<0); //-80

按位计算取整注意事项:

1.取整的数据范围为: ±2^31-1

2.当转换失败时也会返回0

方式7: 四舍五入 Math.round(number)

Math.round() 将数值四舍五入为最接近的整数。

console.log(Math.round(70.1)); // 70

console.log(Math.round(70.5)); // 71

console.log(Math.round(70.9)); // 71

console.log(Math.round(-70.1)); // -70

console.log(Math.round(-70.5)); // -70 注意这里是-70而不是-71

console.log(Math.round(-70.9)); // -71

方式8: 向下取整 Math.floor(number)

Math.floor()法取向下最近整数。

console.log(Math.floor(90.2)); // 90

console.log(Math.floor(90.5)); // 90

console.log(Math.floor(90.9)); // 90

console.log(Math.floor(-90.1)); // -91

console.log(Math.floor(-90.5)); // -91

console.log(Math.floor(-90.9)); // -91

方式9: Math.ceil(number)向上取整(向上取最接近的整数)函数

console.log(Math.ceil(80.1)); // 81

console.log(Math.ceil(80.5)); // 81

console.log(Math.ceil(80.9)); // 81

console.log(Math.ceil(-80.1)); // -80

console.log(Math.ceil(-80.5)); // -80

console.log(Math.ceil(-80.9)); // -80

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值