• c#中decimal的去0显示


    在近来的开发中,遇到到了decimal中显示0的问题,搞了很久才搞好了,现在就简单介绍一下其中一小部分,其他的网上很上很多

    public static string DecimalToString(decimal d)
            {
                return d.ToString("#0.######");
            }

    这个的显示很简单给几个例子就懂了,注意第一个结果,是会四舍五入的

    private void button1_Click(object sender, EventArgs e)
            {
                decimal d0 = 0.0000006m;
                decimal d1 = 0.005000m;
                decimal d2 = 1.00005m;
                decimal d3 = 200.00000m;
                decimal d4 = 200.00006m;
                Console.WriteLine(DecimalToString(d0));
                Console.WriteLine(DecimalToString(d1));
                Console.WriteLine(DecimalToString(d2));
                Console.WriteLine(DecimalToString(d3));
                Console.WriteLine(DecimalToString(d4));
            }

    结果如下:

    0.000001
    0.005
    1.00005
    200
    200.00006

    后面的0会给去除,如果小于0的数,0个位还是0,这样就比较符合用户的需求的习惯。

    再附加上#和0这两个符号的说明:

    以下文字取自:链接

    5、零占位符和数字占位符

    string.Format("{0:0000.00}", 12394.039) 结果为:12394.04

    string.Format("{0:0000.00}", 194.039) 结果为:0194.04

    string.Format("{0:###.##}", 12394.039) 结果为:12394.04

    string.Format("{0:####.#}", 194.039) 结果为:194

    下面的这段说明比较难理解,多测试一下实际的应用就可以明白了。
    零占位符:
    如果格式化的值在格式字符串中出现“0”的位置有一个数字,则此数字被复制到结果字符串中。小数点前最左边的“0”的位置和小数点后最右边的“0”的位置确定总在结果字符串中出现的数字范围。
    “00”说明符使得值被舍入到小数点前最近的数字,其中零位总被舍去。

    数字占位符:
    如果格式化的值在格式字符串中出现“#”的位置有一个数字,则此数字被复制到结果字符串中。否则,结果字符串中的此位置不存储任何值。 
    请注意,如果“0”不是有效数字,此说明符永不显示“0”字符,即使“0”是字符串中唯一的数字。如果“0”是所显示的数字中的有效数字,则显示“0”字符。 
    “##”格式字符串使得值被舍入到小数点前最近的数字,其中零总被舍去。

    注意:这里是说有效数字,所以如果是2.00300的话2到3之间的0是有效数字,3后面的0就不是有效数字了,所以会去除。原理大概是这样,如果有补充可以评论或者联系本人。

  • 相关阅读:
    win10下安装虚拟环境
    apache的rewrite重写、日志切割、防盗链
    apache的虚拟主机配置
    springboot 框架下对象使用时new()和注解注入的区别
    当new()发生时,代码初始化顺序
    爬虫----设置代理HttpClientDownloader
    爬虫:HttpClient Jsoup 爬虫学习
    爬虫webmagic入门学习
    爬虫使用的simhash网页去重算法-----项目改造使用-----java.lang.IllegalStateException: TokenStream contract violation: reset()/close()问题
    JAVA 基本类型与其封装类及两者与String的转换
  • 原文地址:https://www.cnblogs.com/Jeremy2001/p/7081748.html
Copyright © 2020-2023  润新知