Math对象应用详解
JavaScript中的Math对象提供了大量的算术运算功能和数值操作方法。
JavaScript中的Math对象的与众不同之处在于,它是一个全局对象。在使用Math对象之前,既不需要将一个变量声明为Math对象,也不需要定义一个新的Math对象,JavaScript将自动地创建好Math对象,我们只须直接使用它即可。这使得Math对象使用起来很容易。
Math对象的属性中包含一些经常使用的数学常量,如PI属性(即圆周率近似值3.141592653589793)。通常情况下,要访问这些属性,只须在Math之后加上一个点号(.),然后写出要访问的属性名。例如,要计算一个圆的面积,可以使用如下代码:
var radius = prompt("Give the radius of the circle", "");
var area = (Math.PI)*radius*radius;
document.write("The area is " area);
除加(+)、减(–)、乘(*)、除(/) 4个标准算术运算外,Math对象还包含一些复杂的数学方法,用于完成算术运算无法实现的复杂计算,例如cos()方法用于计算弧度参数的余弦函数。下面将介绍一些常见的数学方法。
1.abs()方法
abs()方法返回所传入参数的绝对值。实际上,绝对值就是一个数去掉正负号之后的数值。例如,–1的绝对值是1,–4的绝对值是4等。对于正数,其绝对值就是该正数本身,例如,1的绝对值就是1。
例如:下面的代码对–101取绝对值,并把结果输出在页面上:
var myNumber = -101;
document.write(Math.abs(myNumber));
2.ceil()方法
ceil()方法用于向上取整,它把一个数值向上舍入到最接近的最小整数,即对于Math.ceil(n)方法,它将返回大于或等于n的最小整数。例如,10.01向上取整后为11,–9.99向上取整后为–9(这是因为对于负数,–9大于–10)。ceil()方法只有一个参数,即需要向上取整的数值。
ceil()方法的使用与第2章中介绍过的parseInt()方法是不同的。parseInt()方法只是简单地截断小数点之后的所有数字,把整数部分保留下来。而ceil(n)方法将向上取整,返回大于或等于n的最小整数。
例如,下面的代码将在页面上输出两行信息,第一行为ceil()方法对101.01向上取整的结果102,第二行为parseInt()方法取整的结果101:
var myNumber = 101.01;
document.write(Math.ceil(myNumber) "<BR>");
document.write(parseInt(myNumber));
3.floor()方法
与ceil()方法类似,floor()方法也用于对一个数字进行取整,所不同的是,floor()方法用于向下取整,它把一个数值向下舍入到最接近的最大整数,即对于Math.floor(n)方法,它将返回小于或等于n的最大整数。例如,Math.floor(10.01)将返回10,而Math.floor(–9.99)将返回–10。
4.round()方法
round()方法用于对一个数值进行四舍五入,即当一个数小数部分大于等于0.5时,则向上舍入,小于等于0.5时则向下舍入。
例如,对于如下代码:
var myNumber = 44.5;
document.write(Math.round(myNumber) "<BR>");
myNumber = 44.49;
document.write(Math.round(myNumber));
对于44.5将四舍五入为45,而对于44.49则四舍五入为44。
5.关于取整方法的小结
正如上面所述,ceil()方法、 floor()方法和round()方法都可以进行取整操作。但各个方法的取整操作是不同的。对于floor(n)方法,它返回小于或等于n的最大整数;对于ceil(n)方法,它返回大于或等于n的最小整数;而round(n)方法将对n进行四舍五入。这几个方法可能容易混淆,表4-3格则用实例进行了说明:它显示了一列数值,以及将这些数值作为参数分别传入parseInt()函数、ceil()方法、floor()方法和round()方法时的返回值。
表 4-3
参 数 |
parseInt() 方法的返回值 |
ceil() 方法的返回值 |
floor() 方法的返回值 |
round() 方法的返回值 |
10.25 |
10 |
11 |
10 |
10 |
10.75 |
10 |
11 |
10 |
11 |
10.5 |
10 |
11 |
10 |
11 |
–10.25 |
–10 |
–10 |
–11 |
–10 |
–10.75 |
–10 |
–10 |
–11 |
–11 |
–10.5 |
–10 |
–10 |
–11 |
–10 |
注意:与表中其他的方法不同的是:parseInt()函数是一个JavaScript内置对象,而不是Math对象的一个方法。
如果对JavaScript中各个取整方法还不熟悉的话,下面的这个例子将演示这些方法的使用,以增进我们对各个取整方法的理解。首先,通过提示框获得用户输入的一个数值,然后将该数值作为参数分别传入parseInt()函数、ceil()方法、 floor()方法和round()方法,各个方法的返回值将以一个表格的形式显示在页面上。
<html>
<body>
<script language="JavaScript" type="text/javascript">
var myNumber = prompt("Enter the number to be rounded","");
document.write("<h3>The number you entered was " myNumber "</h3><br>");
document.write("<p>The rounding results for this number are</p>");
document.write("<table width=150 border=1>");
document.write("<tr><th>Method</th><th>Result</th></tr>");
document.write("<tr><td>parseInt()</td><td>" parseInt(myNumber)
"</td></tr>");
document.write("<tr><td>ceil()</td><td>" Math.ceil(myNumber)
"</td></tr>");
document.write("<tr><td>floor()</td><td>" Math.floor(myNumber)
"</td></tr>");
document.write("<tr><td>round()</td><td>" Math.round(myNumber)
"</td></tr>");
document.write("</table>")
</script>
</body>
</html>