将单个数字转换为2个以上的数字

时间:2012-06-07 13:00:09

标签: c# numbers long-integer

我有一个数字,其长度将超过10个数字,因此我无法将其保存在INTEGER变量中。所以我把它保存在一个LONG变量中。现在问题是,在为LONG Variable添加数字时,它返回Round值。我在C#工作。

例如:

long empId = 00000000001; 
long answer = empId + 1;  //  00000000001 + 1 = 2;
// answer == 2;

但预期答案是“00000000002”,如何实现这一点..

先谢谢..

7 个答案:

答案 0 :(得分:5)

如果您想要用左边的零填充数字,请考虑使用empId.ToString("D11"),直到总共有11个数字。这只是System.Int64的字符串表示形式(在C#中也称为long)。

答案 1 :(得分:3)

当您谈论数字时,000000000022代表完全相同的事情。如果你想要用零填充的那个数字的string表示,那么尝试这样的事情:

answer.ToString().PadLeft(11, '0');

这将确保字符串长度至少为11个字符,并用零填充空格。

答案 2 :(得分:2)

前导0并不重要,它们不是数值的一部分。它只是一个格式化工件。如果要保留0,请使用足够的格式字符串将数字转换回字符串。

long value = ...
string s = value.ToString("0000000000");

答案 3 :(得分:1)

<00> 00000000002和2是相同的长值。如果你想在开头有零,你可以使用Long.ToString(字符串格式)方法:

string strAnswer = answer.ToString("00000000000");

答案 4 :(得分:1)

string VALUE = answer.ToString("00000000000");

答案 5 :(得分:0)

只需添加整数或长整数,然后将其转换为字符串,然后调用string.PadLeft

来自文档:

  

返回一个新字符串,该字符串右对齐此实例中的字符   通过在左侧用指定的Unicode字符填充它们,用于a   指定的总长度。

答案 6 :(得分:0)

如果数字00000000001表示为数字,那么它实际上只是1。如果您希望它在前面显示多个0,那么我建议您在显示它时使用String.PadLeft。例如:

long empId = 00000000001; // Actually sets empID to 1

long answer = empId + 1; // 1 + 1 = 2

string formattedAnswer = 1.ToString().PadLeft(10, '0'); // Creates a string of "0000000001"