首页 > 解决方案 > 格式化int值时如何处理前导零

问题描述

有点空白。如果我想将以下格式 ( ## ### ###) 应用于 int 值,我会这样做。

string myFormat = "## ### ###";
int myPin = 18146145;
Console.WriteLine(myPin.ToString(myFormat)); //18 146 145

然而,问题在于将 say 的值"02112321"格式化为"02 112 321"应用此精确格式"## ### ###"。在这种情况下, 0 会消失。

标签: c#string-formatting

解决方案


格式化包括通过赋予特定形状将值转换为字符串。因此,格式化不适用于字符串(因为它们已经是字符串)。您可以将字符串转换为数字,然后将其转换回字符串并应用所需的格式。

string myFormat = "00 000 000";
string s = "02112321";
string formatted = Int32.Parse(s).ToString(myFormat); // ==> "02 112 321"

如果您需要前导零,请使用格式字符串"00 000 000"而不是"## ### ###".

注意Int32.MaxValue2,147,483,647. 如果您需要格式化较大的数字,请使用Int64.Parse最大允许数字9,223,372,036,854,775,807


推荐阅读