我有这段代码
long num = Int64.Parse(Convert.ToString(random.Next(0, 65535), 2).PadLeft(16, '0'))
Run Code Online (Sandbox Code Playgroud)
使用此代码时,字符串不会使用前导零填充.我不确定,但我的猜测是,当字符串被解析时,它会从某种原因删除前导零?
如果我做这样的事情
long num = Int64.Parse(Convert.ToString(random.Next(0, 65535), 2).PadLeft(16, '8'))
Run Code Online (Sandbox Code Playgroud)
或者任何非零的数字,它将正确地输出到带有前导8的16位数字.
为什么会发生这种情况有一个很好的解释?
还有一个快速简单的解决方案吗?
这不是任何使用int.ToString("D16")或任何类型的重复.我相信这是一个独特的问题.
你用一个字符串填充0,然后转换为一个整数,所以当然任何前导零都将被删除.
IE浏览器.
000000123 == 123
Run Code Online (Sandbox Code Playgroud)
在填充8作品时,因为您正在创建一个新数字:
888888123 != 123
Run Code Online (Sandbox Code Playgroud)
如果你想要填充数字0,只需删除Int64.Parse.
| 归档时间: |
|
| 查看次数: |
658 次 |
| 最近记录: |