总目录
一、数字分隔符是什么?
_
用作数字分隔符。- 可以将数字分隔符用于所有类型(二进制,十进制,十六进制)的数字文本。
- 数字分隔符
_
在编译时是被编译器忽略的,因此在语义上对数字结果没有任何影响。
二、为什么要用数字分隔符?
在编写代码的过程,可能会遇到一些很大的数字,如:
long value = 100000000000;
我们根本无法从上面的数字中快速的识别这是多少,估计还得鼠标移上去一个个数;因此我们就需要找到一个可读性强的数字表示方法。
在用字符串表示各类数字货币金额的时候,会发现如下的表示方法:
double amount = 1234.5678;
Console.WriteLine(amount.ToString("C")); // 输出: ¥1,234.57
在字符中增加了 逗号(,
)来表示千分位。通过识别千分位就很容易的识别出数字的金额的大小。
那么在数字中如何增加可读性呢?
很简单,就是在数字中 使用 _
分割数字文本中的字符,使其变得易于阅读。
static void Main(string[] args){long value = 100000000000;value = 1000_0000_0000;}
上例中,通过使用数字分隔符,一看就知道是1000亿。
三、如何使用数字分隔符?
当我们使用下划线 _ 作为数字分隔符时,可以把它添加在数字文本中除了第一个字符和最后一个字符之外的任何位置。
将下划线添加到长数字的不同的位置,就形成了不同的分组,不同的分组在不同的情景中可能会有不同的意义。比如我们在使用十进制、十六进制或二进制记数法声明数字时,可以加上下划线 _ 字符,使数字更易读懂。
1. 二进制数字中使用
static void Main(string[] args){var binaryLiteral = 0b_0010_1010;int bin = 0b_1001_1010_0001_0100;Console.WriteLine(binaryLiteral); // 42Console.WriteLine(bin); // 39444}
2. 十进制
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); // 1000000Console.WriteLine(dec2); // 10000000000Console.WriteLine(weird); // 123456789Console.WriteLine(real); // 0.010001111}
使用_
数字分隔符 可以任意分割
3. 十六进制数字中使用
static void Main(string[] args){int hex1 = 0x_64_95_ED; int hex2 = 0X_F4_95_ED;Console.WriteLine(hex1); // 6591981Console.WriteLine(hex2); // 16029165}
4. 错误使用
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# 中的数字分隔符