包含javascript舍的詞條

如何使用Javascript格式化數(shù)字,金額,舍入舍去

首先我們看看最簡(jiǎn)單的實(shí)現(xiàn)方法,需要達(dá)到這樣的目的。

專注于為中小企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)荔城免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了成百上千企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

輸入一串?dāng)?shù)字或者字符串,最后返回格式化后的字符串,每隔3位用逗號(hào)分隔,通過四舍五入保留小數(shù)點(diǎn)后2兩位。

我們來分析下方法的實(shí)現(xiàn)過程。

替換掉原本傳入數(shù)據(jù)中可能出現(xiàn)的'$'和',',然后判斷是否為數(shù)字。

判斷傳入的數(shù)字是正數(shù)還是負(fù)數(shù)。

判斷小數(shù)位數(shù)的舍入性。

每隔三位,添加一個(gè)逗號(hào)。

重新拼接字符串,正負(fù)號(hào)+整數(shù)位+小數(shù)點(diǎn)+小數(shù)位

javascript對(duì)數(shù)字格式化、千位符、保留小數(shù)、四舍五入

/*

將數(shù)值四舍五入后格式化.

@param num 數(shù)值(Number或者String)

@param cent 要保留的小數(shù)位(Number)

@param isThousand 是否需要千分位 0:不需要,1:需要(數(shù)值類型);

@return 格式的字符串,如'1,234,567.45'

@type String

*/

function formatNumber(num,cent,isThousand){

num = num.toString().replace(/\$|\,/g,'');

if(isNaN(num))//檢查傳入數(shù)值為數(shù)值類型.

num = "0";

if(isNaN(cent))//確保傳入小數(shù)位為數(shù)值型數(shù)值.

cent = 0;

cent = parseInt(cent);

cent = Math.abs(cent);//求出小數(shù)位數(shù),確保為正整數(shù).

if(isNaN(isThousand))//確保傳入是否需要千分位為數(shù)值類型.

isThousand = 0;

isThousand = parseInt(isThousand);

if(isThousand 0)

isThousand = 0;

if(isThousand =1) //確保傳入的數(shù)值只為0或1

isThousand = 1;

sign = (num == (num = Math.abs(num)));//獲取符號(hào)(正/負(fù)數(shù))

//Math.floor:返回小于等于其數(shù)值參數(shù)的最大整數(shù)

num = Math.floor(num*Math.pow(10,cent)+0.50000000001);//把指定的小數(shù)位先轉(zhuǎn)換成整數(shù).多余的小數(shù)位四舍五入.

cents = num%Math.pow(10,cent); //求出小數(shù)位數(shù)值.

num = Math.floor(num/Math.pow(10,cent)).toString();//求出整數(shù)位數(shù)值.

cents = cents.toString();//把小數(shù)位轉(zhuǎn)換成字符串,以便求小數(shù)位長(zhǎng)度.

while(cents.lengthcent){//補(bǔ)足小數(shù)位到指定的位數(shù).

cents = "0" + cents;

}

if(isThousand == 0) //不需要千分位符.

return (((sign)?'':'-') + num + '.' + cents);

//對(duì)整數(shù)部分進(jìn)行千分位格式化.

for (var i = 0; i Math.floor((num.length-(1+i))/3); i++)

num = num.substring(0,num.length-(4*i+3))+'’'+

num.substring(num.length-(4*i+3));

return (((sign)?'':'-') + num + '.' + cents);

}

JS實(shí)現(xiàn)浮點(diǎn)數(shù)精確舍入小數(shù)點(diǎn)

舍入是使用數(shù)字時(shí)最常見的操作之一。

這里有幾個(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)容而沒有舍入: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) ;

js javascript 四舍五入結(jié)果不正確 不對(duì)

我測(cè)試了你的表達(dá)式,結(jié)果是3488.4849999999997。四舍五入為3488.48。

javascript做浮點(diǎn)數(shù)運(yùn)算時(shí),由于浮點(diǎn)數(shù)精度的問題,會(huì)造成運(yùn)算結(jié)果不準(zhǔn)確。

解決辦法是:將小數(shù)運(yùn)算轉(zhuǎn)化為整數(shù)運(yùn)算,這樣就不會(huì)丟失精度。

function?multiply(arg1,?arg2)?

{?

var?m=0,?s1=arg1.toString(),?s2=arg2.toString();?

try{

m+=s1.split(".")[1].length

}?catch(e){}?

try{

m+=s2.split(".")[1].length

}?catch(e){}??

return?Number(s1.replace(".",""))?*?Number(s2.replace(".",""))?/?Math.pow(10,m)?

}

multiply(500.50,6.97);

/*

3488.485

*/

既想保證精度,又想簡(jiǎn)單,那沒有這樣的方法。其實(shí)這個(gè)方法本身并不復(fù)雜。

求網(wǎng)友推薦~

分享題目:包含javascript舍的詞條
網(wǎng)站地址:http://www.muchs.cn/article48/phjgep.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)、定制網(wǎng)站、全網(wǎng)營(yíng)銷推廣、品牌網(wǎng)站建設(shè)定制開發(fā)、電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

網(wǎng)站建設(shè)網(wǎng)站維護(hù)公司