当前位置: 首页 > 图文教程 > 网络编程 > Javascript > Math对象应用详解

Javascript
JavaScript 语言精粹学习笔记
有关div页面拖动、缩放、关闭、遮罩效果代码
JQuery this 和 $(this) 的区别
JS 时间显示效果代码
jquery 表单进行客户端验证demo
JS 获取span标签中的值的代码 支持ie与firefox
JavaScript 获取用户客户端操作系统版本
可以读取EXCEL文件的js代码
JS去除字符串的空格增强版(可以去除中间的空格)
监控用户是否关闭浏览器的js代码
javascript 继承实现方法
JSON 入门指南 想了解json的朋友可以看下
javascript 函数调用规则
动态表格Table类的实现
JSON 客户端和服务器端的格式转换
jQuery ui1.7 dialog只能弹出一次问题
javascript 遍历验证所有文本框的值
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
javascript 简练的几个函数
csdn 博客中实现运行代码功能实现

Javascript 中的 Math对象应用详解


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-28   浏览: 160 ::
收藏到网摘: n/a

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>

将以上代码保存为ch4_examp3.htm,并在浏览器中打开该文件。在提示框中输入一个数值,如12.354,然后单击提示框的OK按钮。在提示框中输入的数值将作为参数分别传入parseInt()函数、ceil()方法、 floor()方法和round()方法,各方法取整的结果将用HTML格式化成一个表格形式,如图4-1所示。

图  4-1

代码解说

在上面的代码中,首先使用一个提示框提示用户输入一个数值:

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()方法中,使用了HTML标记来格式化输出的内容。对于主标题,使用了<h3>标记,对于表格的描述信息,使用了段落标记<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>")

对于表格,首先创建了一个表头,然后对于每一个取整方法,使用了独立的一行来显示。可以看到,在JavaScript代码中,动态地创建Web页面的HTML标记是很容易的。动态地创建HTML标记的原则与在Web页面中使用HTML标记时是一样的:HTML标记的语法必须是有效的,否则页面上将显示出一些错误的信息或者什么都不显示。对于表格的每一行,创建的方法都是相同的,只是使用了不同的取整方法。对于表格的第一行,使用了parseInt()函数,代码如下所示:

document.write("<tr><td>parseInt()</td><td>"+ parseInt(myNumber)

+ "</td></tr>");

在向页面输出的document.write()方法中,首先使用了<tr>标记来创建表格的行,然后,使用<td>标记创建了一个表格单元,并将用于取整的方法名称parseInt()显示在表格单元中,最后以</td>标记来结束这个单元格。接着用另一个<tr>标记创建第二个单元格,并将parseInt()函数取整之后的结果放在第二个单元格中,最后以</td>标记结束第二个单元格,以</tr>标记结束这个表格行。尽管parseInt()函数的返回值是数值类型,但是当它与字符串类型连接在一起时,JavaScript将把parseInt()函数的返回值自动转换为字符串类型,并与其他字符串连接在一起。这个转换是JavaScript在后台自动实现的,无须我们关心。