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