如何格式化具有不同小数位的数字以具有前导零
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")
我正在将 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")