在JavaScript中,有一种很常见的方法叫做Math.floor。这个方法可以完成向下取整的功能。Math.floor方法将原数字向下取整为最接近的整数:
Math.floor(1.1); // 1 Math.floor(-1.1); // -2
一、Math.floor的基本用法
首先,我们来看一下Math.floor方法的使用:
const num1 = 12.67; const num2 = 5.33; console.log(Math.floor(num1)); // 12 console.log(Math.floor(num2)); // 5
可以发现,Math.floor方法可以将小数部分舍去,只保留整数部分。如果原数字为负数,则Math.floor方法将其向下取整为比原数小的最大整数。
说白了,Math.floor就是去掉数字的小数部分,只保留整数。
二、Math.floor方法的妙用
1、用Math.floor实现整数除法
在JavaScript中进行除法运算时,如果除不尽,会得到一个小数。但是,在某些情况下,我们需要得到一个整数结果。此时,我们就可以使用Math.floor方法将小数部分去掉,得到一个整数结果。
const num1 = 10; const num2 = 3; const result = Math.floor(num1 / num2); console.log(result); // 3
在上面的例子中,我们用Math.floor实现了整数除法。num1除以num2的结果是3.3333333,但是我们使用了Math.floor方法将小数部分舍去,只保留整数3。
2、用Math.floor获取随机整数
在开发中,我们有时需要生成随机整数。使用Math.random方法可以得到一个0到1之间的随机数,但是这个随机数是小数,我们需要将其转换成整数才能使用。此时,我们就可以使用Math.floor方法获取一个随机整数。
const randomNumber = Math.floor(Math.random() * 10); console.log(randomNumber);
在上面的代码中,Math.random() * 10得到的是一个0到10之间的小数,我们再使用Math.floor方法将其转换为一个0到9之间的整数。
3、用Math.floor实现精准的小数位数控制
在JavaScript中,默认情况下,使用toFixed方法可以实现小数位数控制。但是,这个方法会四舍五入,如果我们需要实现精确的小数位数控制,可以使用Math.floor方法以及乘法运算和除法运算。
function formatNumber(num, decimals) { return Math.floor(num * Math.pow(10, decimals)) / Math.pow(10, decimals); } console.log(formatNumber(3.1415926535, 2)); // 3.14
在上面的代码中,我们编写了一个formatNumber函数,该函数接收两个参数:num表示要格式化的数字,decimals表示小数位数。
我们使用乘法运算将num乘以10的decimals次方,使小数点移到要保留的精度前面,然后使用Math.floor方法将小数点后面的部分去掉,最后再使用除法将小数点移到原来的位置上,以实现精确的小数位数控制。
三、Math.floor方法的常见误区
1、Math.floor方法只接收一个参数
有些初学者会误认为Math.floor方法可以接收多个参数,比如下面的代码:
const num1 = 12; const num2 = 10; const num3 = 8; console.log(Math.floor(num1, num2, num3)); // 12
然而,上面的代码是错误的,因为Math.floor方法只能接收一个参数,如果传入多个参数,只会使用第一个参数进行运算。
2、Math.floor方法不能用于字符串
与其他编程语言不同的是,在JavaScript中,Math.floor方法只能用于数字,不能用于字符串:
console.log(Math.floor('12.67')); // NaN console.log(Math.floor('hello')); // NaN
如果我们传入的参数不是数字类型,Math.floor方法将返回NaN(Not a Number)。
四、总结
Math.floor方法是一个非常实用的方法,它可以用于数学计算、随机数生成、小数位数控制等多个方面。但是,在使用Math.floor方法时,我们需要注意它的限制,确保传入的参数是数字类型。