• 控制台I/O显示格式化的结果


    不经常使用Console.WriteLine(),所以记录下所有的格式化的写法,以供分享:

    (1)格式字符串(不考虑大小写,除了e/E)

       C:货币格式  C2:货币格式,精度为两位小数。 eg:$73.23

       D:十进制格式   E:科学计数法  

       System.Console.Write("{0,5:D2}", i);表示宽度为5,精度为2,不足补0。
       D表示是整数,其它的标准数字格式字符串有:
       C 本地货币格式
       E 科学记数法(指数)格式
       F 定点(小数)格式
       G 常规格式
       N 数字格式
       P 百分数格式
       X 十六进制格式
       R 往返过程

       还有一种方式是使用占位符:
       double a = 1.2345;
       System.Console.WriteLine("{0:###.000000}", a);
       结果为1.234500
       “#”号位置上有字符就输出,没有则不输出,0的位置上有字符就输出,没有就填0。
       再来看个例子: 货币格式
       decimal m = 168.24m;
       decimal n = 45.8m;
       System.Console.WriteLine("{0,8:C2} {1,8:C2} {2,8:C2}", m, n,m-n);
    输出结果为
    ¥168.24
    ¥45.80
    ¥122.44
    前面有一个空格,因为宽度是8,小数点后保留两位小数,不足补0。
    它是右对齐的,我们可以换成左对齐:
    ¥168.24
    ¥45.80
    ¥122.44
    “¥”符号是自动加上去的,我们这里选择的是货币格式,它会自动选择适当的符号,RMB当然是¥,要修改可以去控制面板里面设置语言和货币。
    以上是数字的格式,另外日期和时间格式字符串也是比较常用的。
    static void Main(string[] args)
    {
    DateTime date1 = new DateTime(2010, 5, 22,19,50,28); //2010年5月22日19点50分28秒
    Console.WriteLine(date1.ToString("f",CultureInfo.CreateSpecificCulture("zh-CN")));
    }

    D 长日期模式 2010年5月22日
    f 完整日期/时间模式(短时间) 2010年5月22日 19:50
    F 完整日期/时间模式(长时间) 2010年5月22日 19:50:28
    g 常规日期/时间模式(短时间) 2010/5/22 19:50
    G 常规日期/时间模式(长时间) 2010/5/22 19:50:28
    M或m 月日模式 5月22日
    t 短时间模式 19:50
    T 长时间模式 19:50:28
    u 通用的可排序日期/时间模式 2010-05-22 19:50:28Z
    U 通用完整日期/时间模式 2010年5月22日 11:50:28
    Y或y 年月模式 2010年5月
    还可以自定义格式,
    {
    DateTime date1 = new DateTime(2010, 5, 22,19,50,28);
    Console.WriteLine(date1.ToString("yyyy年MM月dd日 tt hh:mm:ss.FF",CultureInfo.CreateSpecificCulture("zh-CN")));
    }

    输出为2010年05月22日 下午 07:50:28
    (2)输出写法

    {索引,宽度:格式}

    宽度:正值右对齐,负值左对齐

    通常为:{索引},{索引:格式},{索引,宽度,格式}

    (3)以下代码已编译通过:

    using System;
    namespace NS
    {
        class CA
        {
            public static void Main()
            {
                decimal i = 940.23m;
                decimal j = 73.70m;
                Console.WriteLine("{0,9:C2} +{1,8:C2} ---------- {2,9:C2}",i,j,i+j);
            }
        }
    }

    结果:Console.WriteLine()格式化输出小记

  • 相关阅读:
    树莓派4B-安装docker
    树莓派4B-挂载硬盘
    树莓派4B-修改软件源
    树莓派4B-初始化网络-静态ip
    树莓派4B-下载系统
    爬虫之路: 字体反扒升级版
    annotations导入报错
    [转]微信小程序全局分享转发控制实现——从此无需页面单独配置
    ollydbg 条件断点语法格式
    c++ CreateThread传递char*参数乱码解决办法
  • 原文地址:https://www.cnblogs.com/libbybyron/p/6598671.html
Copyright © 2020-2023  润新知