C# _ 数字分隔符的使用

总目录


一、数字分隔符是什么?

  • _ 用作数字分隔符。
  • 可以将数字分隔符用于所有类型(二进制,十进制,十六进制)的数字文本。
  • 数字分隔符 _ 在编译时是被编译器忽略的,因此在语义上对数字结果没有任何影响。

二、为什么要用数字分隔符?

在编写代码的过程,可能会遇到一些很大的数字,如:

csharp 复制代码
long value = 100000000000;

我们根本无法从上面的数字中快速的识别这是多少,估计还得鼠标移上去一个个数;因此我们就需要找到一个可读性强的数字表示方法。

在用字符串表示各类数字货币金额的时候,会发现如下的表示方法:

csharp 复制代码
double amount = 1234.5678;
Console.WriteLine(amount.ToString("C"));   // 输出: ¥1,234.57

在字符中增加了 逗号(,)来表示千分位。通过识别千分位就很容易的识别出数字的金额的大小。

那么在数字中如何增加可读性呢?

很简单,就是在数字中 使用 _ 分割数字文本中的字符,使其变得易于阅读。

csharp 复制代码
        static void Main(string[] args)
        {
            long value = 100000000000;
            value = 1000_0000_0000;
        }

上例中,通过使用数字分隔符,一看就知道是1000亿。

三、如何使用数字分隔符?

当我们使用下划线 _ 作为数字分隔符时,可以把它添加在数字文本中除了第一个字符和最后一个字符之外的任何位置。

将下划线添加到长数字的不同的位置,就形成了不同的分组,不同的分组在不同的情景中可能会有不同的意义。比如我们在使用十进制、十六进制或二进制记数法声明数字时,可以加上下划线 _ 字符,使数字更易读懂。

1. 二进制数字中使用

csharp 复制代码
        static void Main(string[] args)
        {
            var binaryLiteral = 0b_0010_1010;
            int bin = 0b_1001_1010_0001_0100;
            Console.WriteLine(binaryLiteral);   // 42
            Console.WriteLine(bin);             // 39444
        }

2. 十进制

csharp 复制代码
        static void Main(string[] args)
        {
            int dec1 = 1_000_000;
            long dec2 = 100_0000_0000;
            int weird = 1_2__3___4____5_____6______7_______8________9;
            double real = 1_000.111_1e-5;

            Console.WriteLine(dec1);   // 1000000
            Console.WriteLine(dec2);   // 10000000000
            Console.WriteLine(weird);  // 123456789
            Console.WriteLine(real);   // 0.010001111
        }

使用_ 数字分隔符 可以任意分割

3. 十六进制数字中使用

csharp 复制代码
        static void Main(string[] args)
        {
            int hex1 = 0x_64_95_ED;      
            int hex2 = 0X_F4_95_ED;
            Console.WriteLine(hex1);   // 6591981
            Console.WriteLine(hex2);   // 16029165
        }

4. 错误使用

csharp 复制代码
double d1 = 1.1_e1;     //不能出现在指数字符前后
float f1 = 10_f;        //不能出现在类型说明符前面
double d2 = 10_.0;      //不能出现在小数点前后
float pi1 = 3_.1415F;   //不能出现在小数点前后
float pi2 = 3._1415F;   //不能出现在小数点前后
int x1 = 52_;           //不能出现在第一个字符和最后一个字符
int x2 = 0x52_;         //不能出现在第一个字符和最后一个字符
int x3 = 0_x52;         //不能出现在 0x 之间

结语

回到目录页:C# 知识汇总

希望以上内容可以帮助到大家,如文中有不对之处,还请批评指正。


参考资料:
C# 中的数字分隔符

相关推荐
Dovis(誓平步青云)1 分钟前
基于面向对象设计的C++日期推算引擎:精准高效的时间运算实现与运算重载工程化实践
开发语言·c++·经验分享·笔记
夜晚中的人海15 分钟前
【C语言】初阶数据结构相关习题(二)
c语言·开发语言·数据结构
武昌库里写JAVA28 分钟前
MacOS Python3安装
java·开发语言·spring boot·学习·课程设计
Dxy123931021631 分钟前
python如何设置excel单元格边框样式
开发语言·python·excel
chaodaibing1 小时前
Python解析Excel入库如何做到行的拆分
开发语言·python·excel
dudly1 小时前
Python类的力量:第五篇:魔法方法与协议——让类拥有Python的“超能力”
开发语言·python
ghost1431 小时前
C#学习第22天:网络编程
开发语言·学习·c#
zhengddzz2 小时前
从卡顿到丝滑:JavaScript性能优化实战秘籍
开发语言·javascript·性能优化
范纹杉想快点毕业2 小时前
以项目的方式学QT开发(三)——超详细讲解(120000多字详细讲解,涵盖qt大量知识)逐步更新!
c语言·开发语言·c++·qt·mysql·算法·命令模式
明月看潮生2 小时前
青少年编程与数学 02-019 Rust 编程基础 13课题、智能指针
开发语言·青少年编程·rust·编程与数学