http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4376|回复: 0

[C#语言基础] c#中给数字金额,金钱加逗号“,”的方法汇总

[复制链接]
发表于 2021-6-17 09:53:12 | 显示全部楼层 |阅读模式
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

好了就简单介绍这么多,我相信还会很多方式,大家如果有更好的方法可以在下面评论区回复我。



1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-22 06:13

© 2014-2021

快速回复 返回顶部 返回列表