C# _ 数字分隔符的使用

总目录


一、数字分隔符是什么?

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

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

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

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# 中的数字分隔符

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/501301.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2025年第五届控制理论与应用国际会议 | Ei Scopus双检索

会议简介 Brief Introduction 2025年第五届控制理论与应用国际会议(ICoCTA 2025) 会议时间:2025年9月19 -21日 召开地点:中国成都 大会官网:www.icocta.org 控制理论作为一门科学技术,已经广泛地运用于我们社会生活方方面面。随着…

SASS 简化代码开发的基本方法

概要 本文以一个按钮开发的实例,介绍如何使用SASS来简化CSS代码开发的。 代码和实现 我们希望通过CSS开发下面的代码样式,从样式来看,每个按钮的基本样式相同,就是颜色不同。 如果按照传统的方式开发,需要开发btn &…

项目:停车场车辆管理系统

这个代码实现了一个停车场管理系统,主要功能包括车辆信息的添加、删除、修改、查找、显示所有车辆信息、排序以及计算停车费用。系统使用双向链表来存储车辆数据,并提供了菜单驱动的界面供用户选择不同的操作。 主要功能描述: 添加车辆信息&…

RS485方向自动控制电路分享

我们都知道RS485是半双工通信,所以在传输的时候需要有使能信号,标明是发送还是接收信号,很多时候就简单的用一个IO口控制就好了,但是有一些低成本紧凑型的MCU上,一个IO口也是很珍贵的,因此,如果…

《代码随想录》Day24打卡!

《代码随想录》回溯算法:复原IP地址 本题的完整题目如下: 本题的完整思路如下: 1.本题使用递归以及回溯来做,所以依然分为三部曲: 2.第一步:确定递归的参数和返回值:无返回值,参数为…

uboot ,s5pv210 ,bootm分析

先来看看 bootm 的逻辑。 1、 首先是 两 zimage 加上一个头, 变成 Uimage 2、然后是将 uimage 烧写到 TF 卡上去。 3、 然后是 TF 卡上的 uimgae 拷贝到 内存的一段位置上。 4、 然后就是 跳转到 内存的 这个位置上 去运行代码了。 uboot中 将 zimage 变成 uimage…

JS基础 -- 数组 (对象 / 数组 / 类数组 / 对象数组)的遍历

一、数组: 数组是复杂数据类型,用于存储一组有序的数据。 1、创建数组: ① 使用 new 关键字: let arr new Array() // 创建一个长度为0的空数组 let arrLength new Array(5) // 创建一个长度为5的空数组② 字面量形式&#…

利用 AI 高效生成思维导图的简单实用方法

#工作记录 适用于不支持直接生成思维导图的AI工具;适用于AI生成后不能再次编辑的思维导图。 在日常的学习、工作以及知识整理过程中,思维导图是一种非常实用的工具,能够帮助我们清晰地梳理思路、归纳要点。而借助 AI 的强大能力&#xff0c…

嵌入式学习(21)-正点原子脱机下载器Mini-Pro的使用

一、概述 通过脱机下载器可以脱离电脑给电路板下载程序,方便在产线上给PCB烧录程序。 二、程序烧录到脱机下载器 1、驱动及软件下载: https://download.csdn.net/download/A18763139629/90215719 2、软件安装 3、烧录程序 通过USB线与脱机下载器连…

二维码文件在线管理系统-收费版

需求背景 如果大家想要在网上管理自己的文件,而且需要生成二维码,下面推荐【草料二维码】,这个系统很好。特别适合那些制造业,实体业的使用手册,你可以生成一个二维码,贴在设备上,然后这个二维码…

【C语言程序设计——循环程序设计】枚举法换硬币(头歌实践教学平台习题)【合集】

目录😋 任务描述 相关知识 一、循环控制 / 跳转语句的使用 1. 循环控制语句(for 循环) 2. 循环控制语句(while 循环) 3. 跳转语句(break 语句) 4. 跳转语句(continue 语句&…

【Multisim用74ls92和90做六十进制】2022-6-12

缘由Multisim如何用74ls92和90做六十进制-其他-CSDN问答 74LS92、74LS90参考

计算机的错误计算(二百)

摘要 用三个大模型计算 exp(123.456). 结果保留10位有效数字。三个大模型的输出均是错误的,虽然其中一个给出了正确的 Python代码。 例1. 计算 exp(123.456). 保留10位有效数字。 下面是与第一个大模型的对话。 以上为与一个大模型的对话。 下面是与另外一个大模…

自行下载foremos命令

文章目录 问题描述其他小伙伴的成功解决方案,但对我不适用解决思路失败告终 最终解决成功解决思路解决步骤 问题描述 在kali系统终端中输入foremost,显示无此命令 其他小伙伴的成功解决方案,但对我不适用 解决思路 正常来说使用命令 apt-g…

docker 安装influxdb

docker pull influxdb mkdir -p /root/influxdb/data docker run -d --name influxdb -p 8086:8086 -v /root/influxdb/data:/var/lib/influxdb influxdb:latest#浏览器登录:http://192.168.31.135:8086,首次登录设置用户名密码:admin/admin1…

Leetcode打卡:我的日程安排表II

执行结果:通过 题目 731 我的日程安排表II 实现一个程序来存放你的日程安排。如果要添加的时间内不会导致三重预订时,则可以存储这个新的日程安排。 当三个日程安排有一些时间上的交叉时(例如三个日程安排都在同一时间内)&#…

创龙3588——debian根文件系统制作

文章目录 build.sh debian 执行流程build.sh源码流程 30-rootfs.sh源码流程 mk-rootfs-bullseys.sh源码流程 mk-sysroot.sh源码流程 mk-image.sh源码流程 post-build.sh 大致流程系统制作步骤 build.sh debian 执行流程 build.sh 源码 run_hooks() {DIR"$1"shiftf…

拟声 0.60.0 | 拟态风格音乐播放器,支持B站音乐免费播放

「拟声」是一款音乐播放器,不仅支持音视频的本地播放,还提供了账号注册功能,登录后可享受自动同步歌单、歌词等。它支持播放绝大多数音频格式,具备固定输出采样率、独占输出、内置均衡器和音调调整等功能。同时,它也支…

计算机网络 (16)数字链路层的几个共同问题

一、封装成帧 封装成帧是数据链路层的一个基本问题。数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据取出并上交给网络层。封装成帧就是在一段数据的前后分别添加首部和尾部,构成了一个帧。接收端在收到物理层上交的比特流后…

Linux Shell 脚本编程基础知识篇—awk的条件判断(3)

ℹ️大家好,我是练小杰,今天周五了,又是一周过去了😆 本文是有关Linux shell脚本编程的awk命令的条件语句,后续我会不断增加相关内容 ~~ 回顾:【awk字符串函数和内置变量】 更多Linux 相关内容请点击👉【Li…