3

我有一个数字,它的长度将超过 10 位,所以我不能将它保存在 INTEGER 变量中。所以我把它保存在一个 LONG 变量中。现在的问题是,在使用该 LONG 变量添加一个数字时,它会返回一个 Round 值。我在 C# 中工作。

例如:

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

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

提前致谢..

4

7 回答 7

6

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

于 2012-06-07T13:30:17.197 回答
3

当您谈论数字时,000000000022代表完全相同的事物。如果您想要string用零填充该数字的表示,请尝试以下操作:

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

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

于 2012-06-07T13:04:24.833 回答
2

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

long value = ...
string s = value.ToString("0000000000");
于 2012-06-07T13:03:58.137 回答
1

00000000002 和 2 是相同的长值。如果你想在开头有零,你可以使用 Long.ToString(string format) 方法:

string strAnswer = answer.ToString("00000000000");
于 2012-06-07T13:04:27.267 回答
1
string VALUE = answer.ToString("00000000000");
于 2014-01-04T10:42:09.480 回答
0

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

从文档:

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

于 2012-06-07T13:04:27.963 回答
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"
于 2012-06-07T13:05:41.743 回答