官术网_书友最值得收藏!

2.3.4 分析整數(shù)和浮點(diǎn)數(shù)

JavaScript和許多其他程序設(shè)計(jì)語(yǔ)言的一個(gè)不同之處是JavaScript在聲明變量時(shí)不區(qū)分整數(shù)和浮點(diǎn)數(shù)。當(dāng)用戶在網(wǎng)頁(yè)提示中錄入數(shù)字時(shí),JavaScript將把這個(gè)數(shù)字處理為文本。當(dāng)要對(duì)這個(gè)數(shù)字執(zhí)行計(jì)算或數(shù)學(xué)運(yùn)算時(shí),必須告訴JavaScript它是數(shù)字。要做這件事,可以使用兩個(gè)重要的內(nèi)置函數(shù):parseInt()和parseFloat()。當(dāng)把一個(gè)變量名放入這些函數(shù)的圓括號(hào)內(nèi)時(shí),這個(gè)變量將轉(zhuǎn)換為一個(gè)整數(shù)或浮點(diǎn)數(shù)。例2.12展示這些函數(shù)的用法。

例2.12 使用parseInt() 以下程序提示用戶錄入一個(gè)整數(shù),并且存儲(chǔ)在變量num中,然后顯示3個(gè)數(shù):

當(dāng)運(yùn)行時(shí),若用戶在提示時(shí)錄入7,則顯示:

這些顯示是可以解釋的。第5行提示用戶錄入一個(gè)數(shù)字,錄入的7作為文本存儲(chǔ)在變量num中。這樣,當(dāng)運(yùn)行第6行時(shí),顯示num的文本值(7),然后與2連接,然后是一個(gè)強(qiáng)制分行,最終顯示72。

然而,第7行的函數(shù)parseInt()用于將num的數(shù)據(jù)類型轉(zhuǎn)換為整數(shù)。既然num是整數(shù),那么操作符+就成為加操作符,從而2加上num的值,其結(jié)果是9。

既然num已經(jīng)是一個(gè)整數(shù),那么它就能在第8行用做數(shù)字,乘以3,得到數(shù)字結(jié)果21。

例2.12使用操作符+的兩種功能,即加操作符和連接操作符。很明顯,當(dāng)用于連接文本變量時(shí),沒有沖突。JavaScript簡(jiǎn)單地把+用做連接操作符,從而一個(gè)接一個(gè)地顯示變量的值。然而,當(dāng)需要把+用做加操作符時(shí),必須保證把操作的數(shù)字處理為數(shù)字類型,做法是使用parseInt()和parseFloat(),并把操作的數(shù)字放入在圓括號(hào)內(nèi)。

最后,由于JavaScript不區(qū)分整數(shù)和浮點(diǎn)數(shù),所以parseInt()和parseFloat()有什么不同呢?

假定str是string變量,那么:

·parseInt(str)在字符串(str)中找到第一個(gè)整數(shù),將它轉(zhuǎn)換為一個(gè)整數(shù)值并作為返回值。它只返回在字符串中找到的第一個(gè)整數(shù)。

·parseFloat(str)在字符串(str)中找到第一個(gè)浮點(diǎn)數(shù),將它轉(zhuǎn)換為一個(gè)浮點(diǎn)值并作為返回值。與parseInt()不同,它也識(shí)別小數(shù)部分。

如果字符串的第一個(gè)字符不是一個(gè)數(shù)字,那么這兩個(gè)函數(shù)都返回一個(gè)非數(shù)字值NaN。例2.13說明parseInt()和parseFloat()之間的不同。

例2.13 parseInt()或parseFloat()

當(dāng)運(yùn)行時(shí),若用戶在提示中錄入7,則顯示:

然而,若用戶錄入7.893,則顯示:

若用戶錄入7.893Hello!,則忽略最后一個(gè)數(shù)字后面的文本,并且顯示:

最后,若用戶錄入Heno!7.893Heno!,則由于第一個(gè)字符不是數(shù)字,所以顯示:

如果要求用戶輸入數(shù)字,并且能夠確信輸入的數(shù)字值必須是整數(shù)值,那么就使用函數(shù)parseInt()。然而,這個(gè)函數(shù)將截除用戶輸入的小數(shù)部分。如果需要小數(shù)部分,那么就使用parseFloat()。

2.3節(jié)檢查點(diǎn)

2.9 求下列每個(gè)表達(dá)式的值:

a)14%3

b)7%6

c)(5+(11%11))*5

d)8+25%3

2.10 若X=2和Y=3,則給出下列每個(gè)表達(dá)式的值:

a)(2*X-1)%2+Y

b)X*Y+10*X/(7-Y)

c)(4+(12%Y))*(X+1)/Y

d)4*Y/X*2

2.11 以下代碼段將顯示下列哪個(gè)信息?(注:假定document.write()語(yǔ)句能夠顯示單詞之間的空格。)

a)Morrisis acat.

b)Morris is a cat.

2.12 描述符號(hào)+在JavaScript中的兩種用途。

2.13 parseInt()和parseFloat()之間的主要不同是什么?

2.14 假定你正在為一個(gè)網(wǎng)上商店編寫腳本,計(jì)算商品的銷售價(jià)。編寫一個(gè)腳本,讓用戶錄入折扣百分比,并且將百分比轉(zhuǎn)換為一個(gè)小數(shù)。然后,在要求用戶錄入商品價(jià)格之后,計(jì)算它的銷售價(jià)并且顯示它。

主站蜘蛛池模板: 静宁县| 通辽市| 东明县| 贡觉县| 福清市| 邳州市| 体育| 清新县| 登封市| 山阳县| 安阳县| 河北区| 东明县| 泸州市| 兰坪| 宜州市| 自贡市| 西林县| 和龙市| 通榆县| 莫力| 南昌县| 隆安县| 平乡县| 乐平市| 南川市| 贡觉县| 凤翔县| 萨迦县| 花莲县| 曲靖市| 泽普县| 安图县| 普兰店市| 南安市| 嘉鱼县| 郑州市| 响水县| 克拉玛依市| 宁国市| 建瓯市|