如何格式化具有不同小数位的数字以具有前导零

How to format numbers with different decimal places to have leading zeros

我正在将 vb6 中的旧软件迁移到 vb.net 我希望能够为数字添加前导零(但这些数字可能有或没有小数位)

在 vb6 中,这是通过以下方式完成的:

Format(number, "00000")

在 vb.net 这将转换为

String.Format("{0:D5}", number)

问题是,这仅在变量号是整数时有效...但它不是对象

有时是 Integer,有时是 Double

有没有模拟 VB6 行为并使用相同代码处理整数和双精度数的方法?

使用带有适当格式字符串的 ToString 方法。

number.ToString("00000.##")

根据你要显示多少位小数(如果数字有小数位)放上合适的#数。

例如:

Dim foo as double = 123456
Dim foo2 as double = 1234.56
Dim foo3 as double = 123.456
Console.WriteLine(foo.ToString("00000000.##"))
Console.WriteLine(foo2.ToString("00000000.##"))
Console.WriteLine(foo3.ToString("00000000.##"))

将导致:

00123456
00001234.56
00000123.46

因为我不知道小数点的数量是否变化...(它的旧代码)

我找到了这个替代方案:

CDbl(number).ToString().PadLeft(5, "0")