Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Snum As String = "12340560202"
MsgBox(changenum(Snum))
End Sub
Function changenum(ByVal Snum As String) As String
Dim i As Integer, max As Integer, r As String, n As String, p As String
Snum = Trim(Str(Val(Snum)))
max = Len(Snum)
For i = 1 To max
r = Choose(((max - i + 1) Mod 6) + 1, "แสน", "", "สิบ", "ร้อย", "พัน", "หมื่น")
n = Choose(Mid(Snum, i, 1) + 1, "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า")
If i = 1 And n = "เอ็ด" And max > 1 Then n = "หนึ่ง"
If r = "สิบ" And n = "สอง" Then n = "ยี่"
If r = "" And max - i + 1 > 6 Then r = "ล้าน"
If n <> "ศูนย์" Then
changenum = changenum & n & r
Else
If r = "ล้าน" Then changenum = changenum & r
End If
Next
End Function
จากโค้ดตัวนี้ ผมแปลงได้แล้ว ทีนี้ คือว่าผมต้องการให้มันอ่านจุดทศนิยม อะครับ เช่น 12.03 เป็น สิบสองจุดศูนย์สาม
แบบนี้อะครับ
ใช้ทำได้ช่วยหน่อยครับ
Dim tmpNumber(2) As String
Dim FirstNumber As String
Dim LastNumber As String
Dim NewInputNumber As String = "12.03 "
tmpNumber = NewInputNumber.Split(("."))
FirstNumber = tmpNumber(0)
LastNumber = tmpNumber(1)
If LastNumber.Length > 0 Then
MessageBox.Show("จุด" & "ศูนย์สาม")
End If