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