我有一个数字,其长度将超过10个数字,因此我无法将其保存在INTEGER变量中。所以我把它保存在一个LONG变量中。现在问题是,在为LONG Variable添加数字时,它返回Round值。我在C#工作。
例如:
long empId = 00000000001;
long answer = empId + 1; // 00000000001 + 1 = 2;
// answer == 2;
但预期答案是“00000000002”,如何实现这一点..
先谢谢..
答案 0 :(得分:5)
如果您想要用左边的零填充数字,请考虑使用empId.ToString("D11")
,直到总共有11个数字。这只是System.Int64
的字符串表示形式(在C#中也称为long
)。
答案 1 :(得分:3)
当您谈论数字时,00000000002
和2
代表完全相同的事情。如果你想要用零填充的那个数字的string
表示,那么尝试这样的事情:
answer.ToString().PadLeft(11, '0');
这将确保字符串长度至少为11个字符,并用零填充空格。
答案 2 :(得分:2)
前导0并不重要,它们不是数值的一部分。它只是一个格式化工件。如果要保留0,请使用足够的格式字符串将数字转换回字符串。
long value = ...
string s = value.ToString("0000000000");
答案 3 :(得分:1)
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"