我正在解析一个包含文字和数字的字符串,例如abc00123。
当我提取数字00123时,它仍然是一个字符串,所以我转换为双。
在我这样做之后,它在开头就失去了零。
此外,数字的长度可能会有所不同。
在将字符串转换为double时,是否仍然保持零?
如果没有,也许我会比较两个字符串,如果原始数组的大小更大,如果可能的话,将差异附加到数字的开头?
提前感谢您的帮助。
答案 0 :(得分:2)
没有。双重不了解数字的格式 - 只有数字本身。当存储为double时,123,0123和00123都是相同的值。如果要格式化,则必须将其转换回字符串。
举例说明:
var testString = "00123";
var testDouble = double.Parse(testString);
Console.WriteLine(testDouble.ToString()); //would return 123
Console.WriteLine(testDouble.ToString("00000")); //would return 00123
Console.WriteLine(testDouble.ToString("000000")); //would return 000123
答案 1 :(得分:0)
双打不能在左手边有零,因为它实际上没有意义。但你可以将它们比作你所说的字符串。对于那些长度不同的人,你可以使用PadLeft
来使它们具有相同的长度:
sepratedNumber.PadLeft(10,'0')
;这将在变量sepratedNumber
的左侧追加多个零,直到其总长度等于10。