JavaScript中常用的数字取整方法,赶紧收藏起来!
在 JavaScript 实际开发过程中,经常会遇到数字取整的问题。本篇文章收集了一些方法,有需要的朋友赶紧收藏起来吧!
直接取整,顾名思义只取整数部分,小数部分就直接舍去。
(1)parseInt()
parseInt() 函数解析一个字符串参数,并返回一个指定基数的整数。
parseInt("2022abc"); //2022
parseInt(""); // NaN
parseInt("0xC"); // 12 十六进制
parseInt(22.06); // 22
parseInt(-22.06); // 22
parseInt("030"); // 30 八进制
(2) Math.trunc()
Math.trunc() 方法会将数字的小数部分去掉,只保留整数部分。
Math.trunc(10.15); // 10
Math.trunc(35.13); // 35
Math.trunc(0.123); // 0
Math.trunc(-0.123); // -0
Math.trunc("-3.1415"); // -3
Math.trunc(NaN); // NaN
Math.trunc("foo"); // NaN
Math.trunc(); // NaN
除了以上两个直接取整方法,我们也可以运用按位运算符来实现数字取证。所有的按位运算符都是以带符号的 32 位整数进行。使用它们可以将浮点型转换为整数。但这里面也存在一个问题,取整的数字有一个安全范围 ±2^31-1,即2147483647。
(1)~~number
双波浪线 ~~ 操作符也被称为双按位非操作符。通常,可以用它来代替 Math.trunc() 方法。
~~35.12 // 35
~~3.33333 // 3
~~5 // 5
~~[] // 0
~~NaN // 0
~~null // 0
// 异常情况
~~2147483648.123 // -2147483648
(2) number丨0
丨(按位或)对每一对比特位执行或(OR)操作
35.12|0 // 35
-35.12|0 // -35
2000000000000.15|0 // -1454759936
(3) number^0
^(按位异或),对每一对比特位执行异或(XOR)操作。
35.12^0 // 35
-35.12^0 // -35
2000000000000.15^0 // -1454759936
(4) number<<0
<<(左移)操作符会将第一个操作数向左移动指定的位置。向左被移出的位被丢弃,右侧用0补充。
35.12<<0 // 35
-35.12<<0 // -35
2000000000000.15<<0 // -1454759936
以上快速取整方法执行很快,即便当你执行数百万这样的操作仍然非常使用,速度明显优于其他方法。但这样有一个缺点,就是代码的可读性差。还要注意一个点,当处理一个特别大的数字时,会有一些异常情况。因此,在使用的时候要明确检查输入数值的范围。
当然以上直接去除小数点有时候还不满足我们的实际开发需求,有时候需要对小数进行四舍五入。在JavaScript中,Math对象提供了以下三种方法。
(1)四舍五入
Math.round() 是将数值四舍五入为最相近的整数。
Math.round(3.1) // 3
Math.round(5.5) // 6
Math.round(5.9) // 6
Math.round(-3.1) // -3
Math.round(-5.5) // -5
Math.round(-5.9) // -6
(2)向下取整
Math.floor() 是取向下最近的整数。
Math.floor(3.1) // 3
Math.floor(5.5) // 5
Math.floor(5.9) // 5
Math.floor(-3.1) // -4
Math.floor(-5.5) // -6
Math.floor(-5.9) // -6
(3)向上取整
Math.ceil() 是取向上最近的整数。
Math.ceil(3.1) // 4
Math.ceil(5.5) // 6
Math.ceil(5.9) // 6
Math.ceil(-3.1) // -3
Math.ceil(-5.5) // -5
Math.ceil(-5.9) // -5
结尾
以上就是介绍JavaScript中常用的数字取整方法的内容,如果觉得本篇文章对你有所帮助,希望大家伙儿能够多多支持,点个关注、收藏!
这里是w3cschool编程狮,关注我们,阅读更多的IT资讯及技术干货~
课程:《JavaScript 入门课程》
课程介绍:本课程将带你全面掌握最实用的JavaScript知识点;能够精准输出JavaScript代码;制作出有好的动态网页等。
课程特点:本课程不同于传统的教学课程,以微课图文形式的课程呈现。
160+知识点图文呈现,为理解服务;
160+随堂练习,践行在“做”中“学”;
7次小节测验,讲练结合。
课程评价:
学习方式:扫码 ↓ 立即前往课程界面~