日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > C# >内容正文

C#

C# 中的数字分隔符 _

發(fā)布時(shí)間:2023/12/4 C# 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C# 中的数字分隔符 _ 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

編寫 C# 代碼時(shí),我們時(shí)常會用到很大的數(shù)字,例如下面定義的變量:

const long loops = 50000000000;

您能快速讀出這是多少嗎?是不是還是會有很多人把光標(biāo)定位到最后一位,然后按鍵盤上的向左鍵一個(gè)一個(gè)往上數(shù):個(gè)、十、百、千、萬、十萬、百萬、千萬、億、十億、百億、千億……

數(shù)字的這種寫法,嚴(yán)重影響了它的可讀性。所以人們才會發(fā)明了諸如千分位之類的寫法,上面的數(shù)字用千分位可以寫作?50,000,000,000,這樣子是不是可讀性就強(qiáng)多了?不過這是西方人的寫法。
如果按照我們中國人的習(xí)慣,可以寫成?500,0000,0000,是不是一眼就可以讀出來是五百億了?

那么問題來了,我們能不能在代碼中這么寫來增強(qiáng)數(shù)字的可讀性呢?
答案是肯定的,不過要稍作改變 —— 把逗號換成下劃線?_:

const long loops = 500_0000_0000; // 或者 const long loops = 50_000_000_000;

這是從 C# 7.0 開始支持的功能。它的用法和 Java 及 Python 中的用法是類似的。

當(dāng)我們使用下劃線?_?作為數(shù)字分隔符時(shí),可以把它添加在數(shù)字文本中除了第一個(gè)字符和最后一個(gè)字符之外的任何位置。將下劃線添加到長數(shù)字的不同的位置,就形成了不同的分組,不同的分組在不同的情景中可能會有不同的意義。比如我們在使用十進(jìn)制、十六進(jìn)制或二進(jìn)制記數(shù)法聲明數(shù)字時(shí),可以加上下劃線?_?字符,使數(shù)字更易讀懂。

我們來舉個(gè)例子,定義下面一組數(shù)字:

int bin = 0b1001_1010_0001_0100;// 二進(jìn)制表示 int hex1 = 0x64_95_ED; // 十六進(jìn)制表示 int hex2 = 0x_64_95_ED; // 十六進(jìn)制表示 int dec1 = 1_000_000; // 十進(jìn)制 int dec2 = 100_0000; // 十進(jìn)制 int weird = 1_2__3___4____5_____6______7_______8________9; double real = 1_000.111_1e-5; decimal d = 1_222_345;

上面的這些數(shù)字聲明編譯之后實(shí)際運(yùn)行的代碼是:

int bin = 39444; int hex1 = 6591981; int hex2 = 6591981; int dec1 = 1000000; int dec2 = 1000000; int weird = 123456789; double real = 0.010001111; decimal d = 1222345m;

可以看出,雖然表示結(jié)果一樣,但是適當(dāng)?shù)靥砑恿讼聞澗€分隔符的寫法,大大增加了我們讀數(shù)的容易程度。

C# 中的任意數(shù)字都可以使用下劃線分隔,兩個(gè)連續(xù)數(shù)字字符之間允許出現(xiàn)多個(gè)下劃線。?但是有些時(shí)候是要注意的,比如在小數(shù)和指數(shù)中使用時(shí),不能出現(xiàn)在小數(shù)點(diǎn)(10_.0)的前后、指數(shù)字符(1.1e_1)的前后和類型說明符(10_f)的前面,等等……

我們來看一些錯(cuò)誤的用例,下面的用法都是錯(cuò)誤的:

double d1 = 1.1_e1; //不能出現(xiàn)在指數(shù)字符前后 float f1 = 10_f; //不能出現(xiàn)在類型說明符前面 double d2 = 10_.0; //不能出現(xiàn)在小數(shù)點(diǎn)前后 float pi1 = 3_.1415F; //不能出現(xiàn)在小數(shù)點(diǎn)前后 float pi2 = 3._1415F; //不能出現(xiàn)在小數(shù)點(diǎn)前后 int x1 = 52_; //不能出現(xiàn)在第一個(gè)字符和最后一個(gè)字符 int x2 = 0x52_; //不能出現(xiàn)在第一個(gè)字符和最后一個(gè)字符 int x3 = 0_x52; //不能出現(xiàn)在 0x 之間

總結(jié)

在定義較大的數(shù)字時(shí),使用下劃線?_?作為分隔符,可以讓較長的數(shù)字更具可讀性。這個(gè)功能雖然很微不足道,但當(dāng)你用到它的時(shí)候,易讀性會讓你的心情愉快很多,不是嗎?

下劃線分隔符?_?在語義上對運(yùn)行沒有任何影響,因?yàn)樗诰幾g的時(shí)候就被編譯器忽略了。

作者 :技術(shù)譯民
出品 :技術(shù)譯站(https://ITTranslator.cn/)

總結(jié)

以上是生活随笔為你收集整理的C# 中的数字分隔符 _的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。