大家好,欢迎来到IT知识分享网。
一、介绍:Math.ceil 和 Math.floor
在JavaScript中,你可以使用 Math.ceil()
和 Math.floor()
来进行向上取整和向下取整。
Math.ceil()
函数会返回大于或等于给定数字的最小整数。Math.floor()
函数会返回小于或等于给定数字的最大整数。
例如:
console.log(Math.ceil(5.2)); // 输出: 6 console.log(Math.floor(5.9)); // 输出: 5
这两个函数对处理数字进行取整非常有用,尤其在涉及到需要整数结果的计算或显示时。
其他输入示例:
console.log(Math.floor('123')); // 输出: 123 console.log(Math.ceil(NaN)); // 输出: NaN console.log(Math.floor(Infinity)); // 输出: Infinity console.log(Math.ceil(5.2)); // 输出: 6 console.log(Math.ceil(-5.2)); // 输出: -5 console.log(Math.floor(5.9)); // 输出: 5 console.log(Math.floor(-5.9)); // 输出: -6
二、其他方法
0. Math.round
Math.round
是 JavaScript 中的一个内置方法,用于将一个数值四舍五入到最接近的整数。这个方法是 Math
对象的一部分,Math
对象是 JavaScript 提供的一个内置对象,它包含了数学常数和函数。
Math.round(x)
- 参数:
x
:要四舍五入的数字。
- 返回值:
- 返回
x
四舍五入到最近的整数。如果x
的小数部分等于或大于 0.5,则返回下一个更大的整数;如果小数部分小于 0.5,则返回较小的整数。
- 返回
console.log(Math.round(4.2)); // 输出: 4 console.log(Math.round(4.5)); // 输出: 5 console.log(Math.round(4.7)); // 输出: 5 console.log(Math.round(-4.2)); // 输出: -4 console.log(Math.round(-4.5)); // 输出: -4 console.log(Math.round(-4.7)); // 输出: -5
- 正数:
4.2
小数部分是0.2
,小于0.5
,因此四舍五入到4
。4.5
小数部分是0.5
,等于0.5
,四舍五入到5
。4.7
小数部分是0.7
,大于0.5
,四舍五入到5
。
- 负数:
-4.2
小数部分是0.2
,小于0.5
,四舍五入到-4
。-4.5
小数部分是0.5
,等于0.5
,四舍五入到-4
(远离零)。-4.7
小数部分是0.7
,大于0.5
,四舍五入到-5
。
1. Math.trunc
Math.trunc()
是 JavaScript 中的另一个取整函数,它用于去除一个数字的小数部分,返回整数部分。
与 Math.ceil()
和 Math.floor()
不同的是,Math.trunc()
不会对数字进行四舍五入,而是直接截取掉小数部分,返回整数部分。这在一些场景比 ceil 和 floor 都更合适。
举个例子:
console.log(Math.trunc(5.2)); // 输出: 5 console.log(Math.trunc(-5.9)); // 输出: -5 console.log(Math.trunc(0.9)); // 输出: 0 console.log(Math.trunc(-0.9)); // 输出: 0
需要注意的是,Math.trunc()
可以将正数的小数部分截取掉,也可以将负数的小数部分截取掉,而不是简单地向上或向下取整。
2. 二进制 OR 操作符
可以利用 Bitwise OR 操作符 (|
) 来向下取整。例如,x | 0
可以将 x
向下取整,包括负数。
console.log(5.2 | 0); // 输出: 5 console.log(5.9 | 0); // 输出: 5 console.log(-5.9 | 0); // 输出: -5 console.log(-5.2 | 0); // 输出: -5
关于二进制操作符更多内容可以阅读 HOW – 二进制位运算符优化计算
3. parseInt()
parseInt()
函数可以将字符串解析为整数。对于负数,如果传递给 parseInt()
的字符串以负号开头,它将返回该负数的整数部分,即向下取整。
console.log(parseInt(5.2)); // 输出: 5 console.log(parseInt(5.9)); // 输出: 5 console.log(parseInt(-5.9)); // 输出: -5 console.log(parseInt(-5.2)); // 输出: -5
补充一下,parseInt()
和 parseFloat()
是 JavaScript 中用于将字符串转换为整数和浮点数的函数,它们之间的区别在于:
parseInt()
:- 用于将字符串转换为整数。
- 会从字符串的开头开始解析,直到遇到非数字字符为止。
- 可以接受第二个参数,表示解析时使用的基数(进制),默认为十进制。
- 如果字符串以 “0x” 或 “0X” 开头,会被解释为十六进制数。
- 如果字符串以 “0” 开头且不是 “0x” 或 “0X”,会被解释为八进制数(在严格模式下不推荐使用)。
举个例子:
console.log(parseInt('10')); // 输出: 10 console.log(parseInt('10.123')); // 输出: 10 console.log(parseInt('0xF')); // 输出: 15 (十六进制) console.log(parseInt('010')); // 输出: 8 (八进制,在严格模式下不推荐使用)
parseFloat()
:- 用于将字符串转换为浮点数。
- 会从字符串的开头开始解析,直到遇到非数字字符为止。
- 只能解析十进制数,无法解析十六进制或八进制。
- 可以解析小数点后的数字。
举个例子:
console.log(parseFloat('3.14')); // 输出: 3.14 console.log(parseFloat('3.14abc')); // 输出: 3.14 console.log(parseFloat('abc3.14')); // 输出: NaN
总的来说,parseInt()
主要用于将字符串转换为整数,而 parseFloat()
主要用于将字符串转换为浮点数。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/122102.html