دوشنبه 25 آذر 1387, 4:02 بعدازظهر
سلام دوستان
با استفاده از این کد که در زبان vb.net است میشه عدد را به حروف تبدیل کرد. (که البته شاید خیلی از دوستان با آن اشنا باشند)
با استفاده از این کد که در زبان vb.net است میشه عدد را به حروف تبدیل کرد. (که البته شاید خیلی از دوستان با آن اشنا باشند)
'فانکشن برای تبدیل عدد به حرف
Public Function Con_Horof(ByVal Number_input As String) As String
Dim i, l As Byte ' 0,1,2,3,....,255
Dim Number As Long
Dim harf As String 'جداسازی اعداد از کل عبارت و به هم چسباندن
For i = 1 To Len(Number_input) 'len(str)=طول رشته
harf = Mid(Number_input, i, 1) '=== substr
If IsNumeric(harf) = True Then Number = Number & harf
Next
If Number = 0 Then
Return "صفر"
End If
Dim Flag As Boolean 'true or false
Dim s As String
Dim k(0 To 5) As Long
s = Str(Number) 'تبدیل عدد به رشته
l = Len(s) 'بدست آوردن طول
If l > 15 Then
Return "عدد بسیار بزرگ"
End If
For i = 1 To 15 - l
s = "0" & s
Next i
For i = 1 To Int((l / 3) + 0.99)
k(5 - i + 1) = Val(Mid(s, 3 * (5 - i) + 1, 3))
Next i
Flag = False
s = ""
For i = 1 To 5
If k(i) <> 0 Then
Select Case i 'معادل switch
Case 1
s = s & Three(k(i)) & " تريليون"
Flag = True
'در سایر زبان ها return استفده شود
Case 2
s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " ميليارد"
Flag = True
Case 3
s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " ميليون"
Flag = True
Case 4
s = s & IIf(Flag = True, " و ", "") & Three(k(i)) & " هزار"
Flag = True
Case 5
s = s & IIf(Flag = True, " و ", "") & Three(k(i))
End Select
End If
Next i
Return s + " تومان"
End Function
Private Function Three(ByVal Number As Integer) As String
Dim s As String = ""
Dim i, l As Long
Dim h(0 To 3) As Byte
l = Len(Trim(Str(Number)))
If Number = 0 Then
Return ""
End If
If Number = 100 Then
Return "يكصد"
End If
If l = 2 Then h(1) = 0
If l = 1 Then
h(1) = 0
h(2) = 0
End If
For i = 1 To l
h(3 - i + 1) = Mid(Trim(Str(Number)), l - i + 1, 1)
Next i
Select Case h(1)
Case 1
s = "يكصد"
Case 2
s = "دويست"
Case 3
s = "سيصد"
Case 4
s = "چهارصد"
Case 5
s = "پانصد"
Case 6
s = "ششصد"
Case 7
s = "هفتصد"
Case 8
s = "هشتصد"
Case 9
s = "نهصد"
End Select
Select Case h(2)
Case 1
Select Case h(3)
Case 0
s = s & " و " & "ده"
Case 1
s = s & " و " & "يازده"
Case 2
s = s & " و " & "دوازده"
Case 3
s = s & " و " & "سيزده"
Case 4
s = s & " و " & "چهارده"
Case 5
s = s & " و " & "پانزده"
Case 6
s = s & " و " & "شانزده"
Case 7
s = s & " و " & "هفده"
Case 8
s = s & " و " & "هجده"
Case 9
s = s & " و " & "نوزده"
End Select
Case 2
s = s & " و " & "بيست"
Case 3
s = s & " و " & "سي"
Case 4
s = s & " و " & "چهل"
Case 5
s = s & " و " & "پنجاه"
Case 6
s = s & " و " & "شصت"
Case 7
s = s & " و " & "هفتاد"
Case 8
s = s & " و " & "هشتاد"
Case 9
s = s & " و " & "نود"
End Select
If h(2) <> 1 Then
Select Case h(3)
Case 1
s = s & " و " & "يك"
Case 2
s = s & " و " & "دو"
Case 3
s = s & " و " & "سه"
Case 4
s = s & " و " & "چهار"
Case 5
s = s & " و " & "پنج"
Case 6
s = s & " و " & "شش"
Case 7
s = s & " و " & "هفت"
Case 8
s = s & " و " & "هشت"
Case 9
s = s & " و " & "نه"
End Select
End If
s = IIf(l < 3, Right(s, Len(s) - 3), s)
Return s
End Function
آیا کسی هست که بتواند آن را به java Script تبدیل کند تا از آن در برنامه هایمان استفاده کنیم؟
فایل کد پیوست شد.
با تشکر.