c# - 格式化int值时如何处理前导零
问题描述
有点空白。如果我想将以下格式 ( ## ### ###
) 应用于 int 值,我会这样做。
string myFormat = "## ### ###";
int myPin = 18146145;
Console.WriteLine(myPin.ToString(myFormat)); //18 146 145
然而,问题在于将 say 的值"02112321"
格式化为"02 112 321"
应用此精确格式"## ### ###"
。在这种情况下, 0 会消失。
解决方案
格式化包括通过赋予特定形状将值转换为字符串。因此,格式化不适用于字符串(因为它们已经是字符串)。您可以将字符串转换为数字,然后将其转换回字符串并应用所需的格式。
string myFormat = "00 000 000";
string s = "02112321";
string formatted = Int32.Parse(s).ToString(myFormat); // ==> "02 112 321"
如果您需要前导零,请使用格式字符串"00 000 000"
而不是"## ### ###"
.
注意Int32.MaxValue
是2,147,483,647
. 如果您需要格式化较大的数字,请使用Int64.Parse
最大允许数字9,223,372,036,854,775,807
。
推荐阅读
- css - vaadin 网格高度与移动设备上的分页控件
- php - Iterator 是否仅适用于数值数组?
- sql - 将日期字段设置为特定日期
- linux - 如何使用终端命令删除 linux 上名为“-rf”的目录?
- firebase - 如何以安全的方式从 Cloud Tasks 调用 Firebase 函数?
- visual-studio-code - 将 google-java-format 从 Eclipse 导入 VSCode
- c++ - constexpr 初始化一个数组
- javascript - mongoose - 从 Model.find() 获取嵌套的对象数组并操作内部数组
- c# - 多个开发人员(Unity 帐户)是否可以使用带有 Unity 的 GitLab CI/CD?
- hibernate - 如何在 Hibernate 中使用自动模式生成覆盖而不是附加 SQL 模式定义?