金額用逗號隔開,並能夠控制小數點位數(數字格式化)

js 的金額處理c#

能夠控制小數位數,自動四捨五入。 代碼以下: 函數

//金額格式化(金額字符串,小數點位數)
function fmoney(s, n) {  
    n = n > 0 && n <= 20 ? n : 2;  
    s = parseFloat((s + "").replace(/[^\d\.-]/g, "")).toFixed(n) + "";  
    var l = s.split(".")[0].split("").reverse(), r = s.split(".")[1];  
    t = "";  
    for (i = 0; i < l.length; i++) {  
        t += l[i] + ((i + 1) % 3 == 0 && (i + 1) != l.length ? "," : "");  
    }  
    return t.split("").reverse().join("") + "." + r;  
}

調用:fmoney("12345.675910", 3),返回12,345.676 spa

不過,若是碰到金額的加減乘除運算,須要先把原來格式化的金額還原回去再運算處理。code

還原函數: orm

//還原金額(金額)
function rmoney(s) {  
    return parseFloat(s.replace(/[^\d\.-]/g, ""));  
}

調用:rmoney("12,312,312,345.67"),返回12312312345.67
字符串


c#的金額處理string

//格式爲特殊的string樣式輸出
Label1.Text = string.Format("asdfadsf{0:C}adsfasdf",b);//asdfadsf¥1,234.13adsfasdf
Label2.Text = "asdfadsf"+b.ToString("C")+"adsfasdf";//asdfadsf¥1,234.13adsfasdf
Label1.Text = string.Format("{0:C3}",b);//¥1,234.125
Label2.Text = b.ToString("C3");//¥1,234.125
Label1.Text = string.Format("{0:d}",a);//十進制--12345678
Label2.Text = b.ToString("d");//十進制--相同的類型,轉換報錯
Label1.Text = string.Format("{0:e}",a);//指數--1.234568e+007
Label2.Text = b.ToString("e");//指數--1.234125e+003
Label1.Text = string.Format("{0:f}",a);//定點數--12345678.00
Label2.Text = b.ToString("f");//定點數--1234.13
Label1.Text = string.Format("{0:n}",a);//數值--12,345,678.00
Label2.Text = b.ToString("n");//數值--1,234.13      (這個比較經常使用)
Label1.Text = string.Format("{0:x}",a);//十六進制--bc614e
Label2.Text = b.ToString("x");//16--帶有小數不能轉換,出錯
Label1.Text = string.Format("{0:g}",a);//通用爲最緊湊--12345678
Label2.Text = b.ToString("g");//通用爲最緊湊--1234.12543
Label1.Text = string.Format("{0:r}",a);//轉來轉去不損失精度--整數不容許用,報錯
Label2.Text = b.ToString("r");//轉來轉去不損失精度--1234.12543
相關文章
相關標籤/搜索