Sub NumberToArabicLetters(number As Double) As String
Dim ones(10) As String
Dim tens(10) As String
Dim hundreds(10) As String
Dim thousands(10) As String
Dim result As String = ""
Try
ones(0) = ""
ones(1) = "واحد"
ones(2) = "اثنان"
ones(3) = "ثلاثة"
ones(4) = "أربعة"
ones(5) = "خمسة"
ones(6) = "ستة"
ones(7) = "سبعة"
ones(8) = "ثمانية"
ones(9) = "تسعة"
tens(0) = ""
tens(1) = "عشرة"
tens(2) = "عشرون"
tens(3) = "ثلاثون"
tens(4) = "أربعون"
tens(5) = "خمسون"
tens(6) = "ستون"
tens(7) = "سبعون"
tens(8) = "ثمانون"
tens(9) = "تسعون"
hundreds(0) = ""
hundreds(1) = "مائة"
hundreds(2) = "مائتان"
hundreds(3) = "ثلاثمائة"
hundreds(4) = "أربعمائة"
hundreds(5) = "خمسمائة"
hundreds(6) = "ستمائة"
hundreds(7) = "سبعمائة"
hundreds(8) = "ثمانمائة"
hundreds(9) = "تسعمائة"
thousands(0) = ""
thousands(1) = "ألف"
thousands(2) = "ألفان"
thousands(3) = "ثلاثة آلاف"
thousands(4) = "اربعة آلاف"
thousands(5) = "خمسة آلاف"
thousands(6) = "ستة آلاف"
thousands(7) = "سبعة آلاف"
thousands(8) = "ثمانية آلاف"
thousands(9) = "تسعة آلاف"
If number = 0 Then
Return "صفر"
End If
If number < 0 Then
result = "سالب "
number = -number
End If
Dim onesDigit As Int = number Mod 10
Dim tensDigit As Int = (number / 10) Mod 10
Dim hundredsDigit As Int = (number / 100) Mod 10
Dim thousandsDigit As Int = (number / 1000) Mod 10
If thousandsDigit > 0 Then
result = thousands(thousandsDigit) & " "
If (hundredsDigit > 0 Or tensDigit > 0 Or onesDigit > 0) Then
result = result & " و "
End If
End If
If hundredsDigit > 0 Then
result = result & hundreds(hundredsDigit) & " "
If (tensDigit > 0 Or onesDigit > 0) Then
result = result & " و "
End If
End If
If tensDigit > 0 Then
If tensDigit = 1 Then
result = result & tens(tensDigit) & " "
'onesDigit = onesDigit + 10
If (onesDigit > 0) Then
result = result & " و "
End If
Else
result = result & tens(tensDigit) & " "
If (onesDigit > 0) Then
result = result & " و "
End If
End If
End If
If onesDigit > 0 Then
result = result & ones(onesDigit)
End If
Catch
Log(LastException)
End Try
Return result
End Sub