c#中给数字金额,金钱加逗号“,”的方法汇总
第一种系统方法,不保留小数位
最简单的方法也是推荐使用
[C#] 纯文本查看 复制代码 //定义一个数字
double d = 323239409.8;
richTextBox1.Text += d.ToString("N0");
执行结果如下
[C#] 纯文本查看 复制代码 323,239,410
当然也可以换一种写法
[C#] 纯文本查看 复制代码 //定义一个数字
double d = 323239409.8;
richTextBox1.Text += d.ToString("###,###") ;
以上两种写法虽然很方便但是缺点是会对数字的小数部分进行四舍五入
第二种方法,保留小数位
以下方法会保留小数位[C#] 纯文本查看 复制代码 //定义一个数字
double d = 323239409.8;
richTextBox1.Text = String.Format("{0:N}", d);
执行效果如下
[C#] 纯文本查看 复制代码 323,239,409.80
这种方法默认为两位小数,如果没有小数位,则小数位补两个0
如果只要保留一位,或者是3位的话可以这样写
[C#] 纯文本查看 复制代码 //定义一个数字
double d = 323239409.8;
richTextBox1.Text += String.Format("{0:N1}", d)+"\n";
richTextBox1.Text += String.Format("{0:N2}", d) + "\n";
richTextBox1.Text += String.Format("{0:N3}", d) + "\n";
执行结果如下
[C#] 纯文本查看 复制代码 323,239,409.8
323,239,409.80
323,239,409.800
第三种自己写的算法 有人说了非得用系统的吗,当然不是,你可以自己写,所以我从网上找了一个给大家参考
一起来看看吧
[C#] 纯文本查看 复制代码 private void Form1_Load(object sender, EventArgs e)
{
//定义一个数字
double d = 323239409.8;
//richTextBox1.Text += String.Format("{0:N1}", d)+"\n";
//richTextBox1.Text += String.Format("{0:N2}", d) + "\n";
//richTextBox1.Text += String.Format("{0:N3}", d) + "\n";
//decimal dd = (decimal)11234567890.01;
string ddstr = d.ToString();
richTextBox1.Text += test(ddstr);
}
public string test(string num_str)
{
if (num_str.IndexOf(".") != -1)
{
//小数
string[] strlist = num_str.Split(".".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);//返回值不包含空字符串元素,
var zs = strlist[0];
var xs = strlist[1];
var arry_int = zs.ToArray();
StringBuilder sb = new StringBuilder();
var t = Math.Floor((double)zs.Length / 3);
if (arry_int.Length % 3 == 0)
{
for (int i = 0; i < arry_int.Length; i++)
{
if (i % 3 == 0 && i != 0)
{
sb.Append(",");
sb.Append(arry_int[i]);
continue;
}
sb.Append(arry_int[i]);
}
}
else
{
var t0 = arry_int.Length - (t * 3);
for (int i = 0; i < arry_int.Length; i++)
{
if ((i - t0) % 3 == 0 && i != 0)
{
sb.Append(",");
sb.Append(arry_int[i]);
continue;
}
sb.Append(arry_int[i]);
}
}
return sb.ToString();
}
return string.Empty;
}
执行结果如下
[C#] 纯文本查看 复制代码 323,239,409
好了就简单介绍这么多,我相信还会很多方式,大家如果有更好的方法可以在下面评论区回复我。
|