' Dim pattern As String = "1,00,000,00,000,00,000,00,000,00,00,000.00"
' Log(applyPattern(pattern, 170916574900)) ' 170,91,65,749.00
' Log(applyPattern(pattern, -100000)) ' -1,000.00
' Log(applyPattern(pattern, 3)) ' 0.03
' Log(applyPattern(pattern, -3)) ' -0.03
Private Sub applyPattern(pattern As String, number As Long) As String
Dim s As String = number
Dim prefix As String
If s.StartsWith("-") Then
prefix = "-"
s = s.SubString(1)
End If
If s.Length < 3 Then s = (1000 + Abs(number)).As(String).substring(1)
Dim result As String
Dim index As Int = pattern.length - 1
For i = s.Length - 1 To 0 Step -1
Dim digit As String = s.CharAt(i)
Dim c As String = pattern.charAt(index)
If c <> "0" Then
result = c & result
index = index - 1
End If
result = digit & result
index = index - 1
Next
Return prefix & result
End Sub