dpp*_*dpp 1 vb.net number-formatting
是否可以使用 Format 函数以罗马数字显示整数?
For Counter As Integer = 1 To 10
Literal1.Text &= Format(Counter, "???")
Next
Run Code Online (Sandbox Code Playgroud)
这是我发现的 http://www.source-code.biz/snippets/vbasic/7.htm找到的
(最初由Christian d'Heureuse先生撰写在 VB 中)
我将其转换为 VB.net:
Private Function FormatRoman(ByVal n As Integer) As String
If n = 0 Then FormatRoman = "0" : Exit Function
' there is no Roman symbol for 0, but we don't want to return an empty string
Const r = "IVXLCDM" ' Roman symbols
Dim i As Integer = Math.Abs(n)
Dim s As String = ""
For p As Integer = 1 To 5 Step 2
Dim d As Integer = i Mod 10
i = i \ 10
Select Case d ' format a decimal digit
Case 0 To 3 : s = s.PadLeft(d + Len(s), Mid(r, p, 1))
Case 4 : s = Mid(r, p, 2) & s
Case 5 To 8 : s = Mid(r, p + 1, 1) & s.PadLeft(d - 5 + Len(s), Mid(r, p, 1))
Case 9 : s = Mid(r, p, 1) & Mid(r, p + 2, 1) & s
End Select
Next
s = s.PadLeft(i + Len(s), "M") ' format thousands
If n < 0 Then s = "-" & s ' insert sign if negative (non-standard)
FormatRoman = s
End Function
Run Code Online (Sandbox Code Playgroud)
我希望这会帮助其他人。
干杯 - 戴夫。