Math對象應(yīng)用詳解
JavaScript中的Math對象提供了大量的算術(shù)運(yùn)算功能和數(shù)值操作方法。
JavaScript中的Math對象的與眾不同之處在于,它是一個(gè)全局對象。在使用Math對象之前,既不需要將一個(gè)變量聲明為Math對象,也不需要定義一個(gè)新的Math對象,JavaScript將自動地創(chuàng)建好Math對象,我們只須直接使用它即可。這使得Math對象使用起來很容易。
Math對象的屬性中包含一些經(jīng)常使用的數(shù)學(xué)常量,如PI屬性(即圓周率近似值3.141592653589793)。通常情況下,要訪問這些屬性,只須在Math之后加上一個(gè)點(diǎn)號(.),然后寫出要訪問的屬性名。例如,要計(jì)算一個(gè)圓的面積,可以使用如下代碼:
var radius = prompt("Give the radius of the circle", "");
var area = (Math.PI)*radius*radius;
document.write("The area is " + area);
除加(+)、減(–)、乘(*)、除(/) 4個(gè)標(biāo)準(zhǔn)算術(shù)運(yùn)算外,Math對象還包含一些復(fù)雜的數(shù)學(xué)方法,用于完成算術(shù)運(yùn)算無法實(shí)現(xiàn)的復(fù)雜計(jì)算,例如cos()方法用于計(jì)算弧度參數(shù)的余弦函數(shù)。下面將介紹一些常見的數(shù)學(xué)方法。
1.a(chǎn)bs()方法
abs()方法返回所傳入?yún)?shù)的絕對值。實(shí)際上,絕對值就是一個(gè)數(shù)去掉正負(fù)號之后的數(shù)值。例如,–1的絕對值是1,–4的絕對值是4等。對于正數(shù),其絕對值就是該正數(shù)本身,例如,1的絕對值就是1。
例如:下面的代碼對–101取絕對值,并把結(jié)果輸出在頁面上:
var myNumber = -101;
document.write(Math.abs(myNumber));
2.ceil()方法
ceil()方法用于向上取整,它把一個(gè)數(shù)值向上舍入到最接近的最小整數(shù),即對于Math.ceil(n)方法,它將返回大于或等于n的最小整數(shù)。例如,10.01向上取整后為11,–9.99向上取整后為–9(這是因?yàn)閷τ谪?fù)數(shù),–9大于–10)。ceil()方法只有一個(gè)參數(shù),即需要向上取整的數(shù)值。
ceil()方法的使用與第2章中介紹過的parseInt()方法是不同的。parseInt()方法只是簡單地截?cái)嘈?shù)點(diǎn)之后的所有數(shù)字,把整數(shù)部分保留下來。而ceil(n)方法將向上取整,返回大于或等于n的最小整數(shù)。
例如,下面的代碼將在頁面上輸出兩行信息,第一行為ceil()方法對101.01向上取整的結(jié)果102,第二行為parseInt()方法取整的結(jié)果101:
var myNumber = 101.01;
document.write(Math.ceil(myNumber) + "<BR>");
document.write(parseInt(myNumber));
3.floor()方法
與ceil()方法類似,floor()方法也用于對一個(gè)數(shù)字進(jìn)行取整,所不同的是,floor()方法用于向下取整,它把一個(gè)數(shù)值向下舍入到最接近的最大整數(shù),即對于Math.floor(n)方法,它將返回小于或等于n的最大整數(shù)。例如,Math.floor(10.01)將返回10,而Math.floor(–9.99)將返回–10。
4.round()方法
round()方法用于對一個(gè)數(shù)值進(jìn)行四舍五入,即當(dāng)一個(gè)數(shù)小數(shù)部分大于等于0.5時(shí),則向上舍入,小于等于0.5時(shí)則向下舍入。
例如,對于如下代碼:
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.關(guān)于取整方法的小結(jié)
正如上面所述,ceil()方法、 floor()方法和round()方法都可以進(jìn)行取整操作。但各個(gè)方法的取整操作是不同的。對于floor(n)方法,它返回小于或等于n的最大整數(shù);對于ceil(n)方法,它返回大于或等于n的最小整數(shù);而round(n)方法將對n進(jìn)行四舍五入。這幾個(gè)方法可能容易混淆,表4-3格則用實(shí)例進(jìn)行了說明:它顯示了一列數(shù)值,以及將這些數(shù)值作為參數(shù)分別傳入parseInt()函數(shù)、ceil()方法、floor()方法和round()方法時(shí)的返回值。
表? 4-3
參??? 數(shù) |
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()函數(shù)是一個(gè)JavaScript內(nèi)置對象,而不是Math對象的一個(gè)方法。
posted on 2010-01-22 15:01 飛熊 閱讀(282) 評論(0) 編輯 收藏 所屬分類: javaScript