舍入是使用數(shù)字時(shí)最常見(jiàn)的操作之一。
創(chuàng)新互聯(lián)公司是一家從事企業(yè)網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、行業(yè)門(mén)戶網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)制作的專業(yè)網(wǎng)絡(luò)公司,擁有經(jīng)驗(yàn)豐富的網(wǎng)站建設(shè)工程師和網(wǎng)頁(yè)設(shè)計(jì)人員,具備各種規(guī)模與類型網(wǎng)站建設(shè)的實(shí)力,在網(wǎng)站建設(shè)領(lǐng)域樹(shù)立了自己獨(dú)特的設(shè)計(jì)風(fēng)格。自公司成立以來(lái)曾獨(dú)立設(shè)計(jì)制作的站點(diǎn)上千余家。
這里有幾個(gè)對(duì)數(shù)字進(jìn)行舍入的內(nèi)建函數(shù):
//向下舍入:3.1變成3,-1.1變成-2
//向上舍入:3.1變成4,-1.1變成-1
//向最近的整數(shù)舍入:3.1變成3,3.6變成4,中間值3.5變成4
//移除小數(shù)點(diǎn)后的所有內(nèi)容而沒(méi)有舍入:3.1變成3,-1.1變成-1
這些函數(shù)涵蓋了處理數(shù)字小數(shù)部分的所有可能方法。但是,如果我們想將數(shù)字舍入到小數(shù)點(diǎn)后 n 位改怎么辦?
例如,我們有 1.2345 ,并且想把它舍入到小數(shù)點(diǎn)后兩位,僅得到 1.23 。
有兩種方法可以實(shí)現(xiàn)這個(gè)需求:
1.乘除法
例如,要將數(shù)字舍入到小數(shù)點(diǎn)后兩位,我們可以將數(shù)字乘以 100 (或更大的 10 的整數(shù)次冪),調(diào)用舍入函數(shù),然后再將其除回。
2.函數(shù) toFixed(n) 將數(shù)字舍入到小數(shù)點(diǎn)后 n 位,并以字符串形式返回結(jié)果。
這會(huì)向上或向下舍入到最接近的值,類似于Math.round():
請(qǐng)注意 tofixed 的結(jié)果是一個(gè)字符串。如果小數(shù)部分比需要的短,則在結(jié)尾添加 0 :
我們可以使用一元加號(hào)或 Number() 調(diào)用,將其轉(zhuǎn)換為數(shù)字: +num.toFixed(5) ;
首先我們看看最簡(jiǎn)單的實(shí)現(xiàn)方法,需要達(dá)到這樣的目的。
輸入一串?dāng)?shù)字或者字符串,最后返回格式化后的字符串,每隔3位用逗號(hào)分隔,通過(guò)四舍五入保留小數(shù)點(diǎn)后2兩位。
我們來(lái)分析下方法的實(shí)現(xiàn)過(guò)程。
替換掉原本傳入數(shù)據(jù)中可能出現(xiàn)的'$'和',',然后判斷是否為數(shù)字。
判斷傳入的數(shù)字是正數(shù)還是負(fù)數(shù)。
判斷小數(shù)位數(shù)的舍入性。
每隔三位,添加一個(gè)逗號(hào)。
重新拼接字符串,正負(fù)號(hào)+整數(shù)位+小數(shù)點(diǎn)+小數(shù)位
四舍五入的意思就是 小數(shù)點(diǎn)滿5進(jìn)一。
在Javascript中使用Math.round() 來(lái)實(shí)現(xiàn).
ps:
var num = 0.5;
alert( Math.round(num) ) ;
Result : 1