Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > แปลงค่าตัวเลข จาก เช่น 9999ให้เป็น เก้าพันเก้าร้อยเก้าสิบเก้าบาทถ้วน ยังไงค่ะบอกทีโดยใช้ VB นะ



 

แปลงค่าตัวเลข จาก เช่น 9999ให้เป็น เก้าพันเก้าร้อยเก้าสิบเก้าบาทถ้วน ยังไงค่ะบอกทีโดยใช้ VB นะ

 



Topic : 053017

Guest




ช่วยทำให้ดูเป็นตัวอย่างหน่อยนะค่ะ คือ แปลงข้อมูลเลขจากการป้อนค่าใน textBox ของเรา แล้ว ให้แสดงเป็นตัวหนังสือ นะค่ะ เช่น ว่า 1,234 ให้เป็น หนึ่งพันสองร้อยสามสิบสี่บาท แบบนี้ ค่ะ ช่วยแนะนำทีนะค่ะ ขอบคุณไว้ล่วงหน้า



Tag : .NET, VB.NET, C#







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-12-12 16:09:43 By : unlove View : 2290 Reply : 10
 

 

No. 1



โพสกระทู้ ( 538 )
บทความ ( 3 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


ลองดูตามนี้ครับ คลิก link ได้เลย

การใช้ความสามารถ Excel ช่วยในการแปลงตัวเลขเป็นคำอ่านตัวเลขภาษาไทย






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-12 21:37:36 By : salapao_codeman
 


 

No. 2



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


จัดให้

Code (VB.NET)
    Public Function NumToString(ByVal Num As Decimal) As String
        Dim numstring(10) As String
        Dim inputstring As String
        Dim numLen As Integer
        Dim a As String
        Dim result As String = ""
        Dim bTen As Boolean
        numstring(1) = "ศูนย์"
        numstring(2) = "หนึ่ง"
        numstring(3) = "สอง"
        numstring(4) = "สาม"
        numstring(5) = "สี่"
        numstring(6) = "ห้า"
        numstring(7) = "หก"
        numstring(8) = "เจ็ด"
        numstring(9) = "แปด"
        numstring(10) = "เก้า"
        inputstring = Format$(Num, "######0.00")
        numLen = Len(inputstring)
        If numLen >= 10 Then
            a = Left$(inputstring, numLen - 9)
            If Len(a) = 1 Then result = numstring(Val(a) + 1) + "ล้าน"
        End If
        If numLen >= 9 Then
            a = Mid$(inputstring, numLen - 8, 1)
            If Val(a) > 0 Then result = result + numstring(Val(a) + 1) + "แสน"
        End If
        If numLen >= 8 Then
            a = Mid$(inputstring, numLen - 7, 1)
            If Val(a) > 0 Then result = result + numstring(Val(a) + 1) + "หมื่น"
        End If
        If numLen >= 7 Then
            a = Mid$(inputstring, numLen - 6, 1)
            If Val(a) > 0 Then result = result + numstring(Val(a) + 1) + "พัน"
        End If
        If numLen >= 6 Then
            a = Mid$(inputstring, numLen - 5, 1)
            If Val(a) > 0 Then result = result + numstring(Val(a) + 1) + "ร้อย"
        End If
        If numLen >= 5 Then
            a = Mid$(inputstring, numLen - 4, 1)
            If Val(a) = 0 Then bTen = False
            If Val(a) = 1 Then result = result + "สิบ"
            If Val(a) = 2 Then result = result + "ยี่สิบ"
            If Val(a) >= 3 Then result = result + numstring(Val(a) + 1) + "สิบ"
        End If
        If numLen >= 4 Then
            a = Mid$(inputstring, numLen - 3, 1)
            If Val(a) > 0 And Len(result) = 0 And Right$(inputstring, 2) = "00" Then result = "_ศูนย์"
            If Val(a) = 1 Then
                If bTen = True Then result = result + "เอ็ด"
                If bTen = False Then result = result + "หนึ่ง"
            End If
            If Val(a) >= 2 Then result = result + numstring(Val(a) + 1)
        End If
        a = Right$(inputstring, 2)
        If a = "00" Then
            result = result + "บาทถ้วน"
        Else
            bTen = True
            If Len(result) > 0 Then result = result + "บาท"
            If Val(Left$(a, 1)) = 0 Then bTen = False
            If Val(Left$(a, 1)) = 1 Then result = result + "สิบ"
            If Val(Left$(a, 1)) = 2 Then result = result + "ยี่สิบ"
            If Val(Left$(a, 1)) >= 3 Then result = result + numstring(Val(Left$(a, 1)) + 1) + "สิบ"
            If Val(Right$(a, 1)) = 1 Then
                If bTen = True Then result = result + " เอ็ด"
                If bTen = False Then result = result + " หนึ่ง"
            End If
            If Val(Right$(a, 1)) >= 2 Then result = result + numstring(Val(Right$(a, 1)) + 1)
            result = result + "สตางค์"
        End If
        Return result
    End Function

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-12 22:56:23 By : base3000
 

 

No. 3

Guest


ขอบคุณนะค่ะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 01:35:04 By : unlove
 


 

No. 4

Guest


ขอสอบถามหน่อยนะค่ะ ตัว

Left$

Right$

คือ อะไรค่ะ สงสัยมาก
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 15:47:00 By : unlove
 


 

No. 5



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


คำสั่งพวกนี้ ตั้งแต่ สมัย VB6 แต่ก็ยังใช้ได้อยู่ จึงไม่ได้แก้ไข
ถ้าเป็นสมัยนี้ ก็ใช้ SubString แทน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 16:32:49 By : base3000
 


 

No. 6



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


คือแบบ ว่า เอา ไป ทำลง ใน VB แล้วจะขึ้น Error สีนําเงิน อะ ค่ะ เลยไม่รู้จะแก้ไขยังไง

ช่วยบอกหน่อยได้ ไหม ค่ะว่าต้องแก้ไขยังไง
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 16:40:09 By : tax
 


 

No. 7



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


ผมให้ชุดใหม่ไป Copy มาจากหนังสือ

Code (VB.NET)
    Public Function NumberToThaiWord(ByVal InputNumber As Double) As String
        If InputNumber = 0 Then
            NumberToThaiWord = "ศูนย์บาทถ้วน"
            Return NumberToThaiWord
        End If

        Dim NewInputNumber As String
        NewInputNumber = InputNumber.ToString("###0.00")

        If CDbl(NewInputNumber) >= 10000000000000 Then
            NumberToThaiWord = ""
            Return NumberToThaiWord
        End If

        Dim tmpNumber(2) As String
        Dim FirstNumber As String
        Dim LastNumber As String

        tmpNumber = NewInputNumber.Split(CChar("."))
        FirstNumber = tmpNumber(0)
        LastNumber = tmpNumber(1)

        Dim nLength As Integer = 0
        nLength = CInt(FirstNumber.Length)

        Dim i As Integer
        Dim CNumber As Integer = 0
        Dim CNumberBak As Integer = 0
        Dim strNumber As String = ""
        Dim strPosition As String = ""
        Dim FinalWord As String = ""
        Dim CountPos As Integer = 0

        For i = nLength To 1 Step -1
            CNumberBak = CNumber
            CNumber = CInt(FirstNumber.Substring(CountPos, 1))

            If CNumber = 0 AndAlso i = 7 Then
                strPosition = "ล้าน"
            ElseIf CNumber = 0 Then
                strPosition = ""
            Else
                strPosition = PositionToText(i)
            End If

            If CNumber = 2 AndAlso strPosition = "สิบ" Then
                strNumber = "ยี่"
            ElseIf CNumber = 1 AndAlso strPosition = "สิบ" Then
                strNumber = ""
            ElseIf CNumber = 1 AndAlso strPosition = "ล้าน" AndAlso nLength >= 8 Then
                If CNumberBak = 0 Then
                    strNumber = "หนึ่ง"
                Else
                    strNumber = "เอ็ด"
                End If
            ElseIf CNumber = 1 AndAlso strPosition = "" AndAlso nLength > 1 Then
                strNumber = "เอ็ด"
            Else
                strNumber = NumberToText(CNumber)
            End If

            CountPos = CountPos + 1

            FinalWord = FinalWord & strNumber & strPosition
        Next

        CountPos = 0
        CNumberBak = 0
        nLength = CInt(LastNumber.Length)

        Dim Stang As String = ""
        Dim FinalStang As String = ""

        If CDbl(LastNumber) > 0.0 Then
            For i = nLength To 1 Step -1
                CNumberBak = CNumber
                CNumber = CInt(LastNumber.Substring(CountPos, 1))

                If CNumber = 1 AndAlso i = 2 Then
                    strPosition = "สิบ"
                ElseIf CNumber = 0 Then
                    strPosition = ""
                Else
                    strPosition = PositionToText(i)
                End If

                If CNumber = 2 AndAlso strPosition = "สิบ" Then
                    Stang = "ยี่"
                ElseIf CNumber = 1 AndAlso i = 2 Then
                    Stang = ""
                ElseIf CNumber = 1 AndAlso strPosition = "" AndAlso nLength > 1 Then
                    If CNumberBak = 0 Then
                        Stang = "หนึ่ง"
                    Else
                        Stang = "เอ็ด"
                    End If
                Else
                    Stang = NumberToText(CNumber)
                End If

                CountPos = CountPos + 1

                FinalStang = FinalStang & Stang & strPosition
            Next

            FinalStang = FinalStang & "สตางค์"
        Else
            FinalStang = ""
        End If

        Dim SubUnit As String
        If FinalStang = "" Then
            SubUnit = "บาทถ้วน"
        Else
            If CDbl(FirstNumber) <> 0 Then
                SubUnit = "บาท"
            Else
                SubUnit = ""
            End If
        End If

        NumberToThaiWord = FinalWord & SubUnit & FinalStang
    End Function

    Private Function NumberToText(ByVal CurrentNum As Integer) As String
        Dim _nText As String = ""

        Select Case CurrentNum
            Case 0
                _nText = ""
            Case 1
                _nText = "หนึ่ง"
            Case 2
                _nText = "สอง"
            Case 3
                _nText = "สาม"
            Case 4
                _nText = "สี่"
            Case 5
                _nText = "ห้า"
            Case 6
                _nText = "หก"
            Case 7
                _nText = "เจ็ด"
            Case 8
                _nText = "แปด"
            Case 9
                _nText = "เก้า"
        End Select

        NumberToText = _nText
    End Function

    Private Function PositionToText(ByVal CurrentPos As Integer) As String
        Dim _nPos As String = ""

        Select Case CurrentPos
            Case 0
                _nPos = ""
            Case 1
                _nPos = ""
            Case 2
                _nPos = "สิบ"
            Case 3
                _nPos = "ร้อย"
            Case 4
                _nPos = "พัน"
            Case 5
                _nPos = "หมื่น"
            Case 6
                _nPos = "แสน"
            Case 7
                _nPos = "ล้าน"
            Case 8
                _nPos = "สิบ"
            Case 9
                _nPos = "ร้อย"
            Case 10
                _nPos = "พัน"
            Case 11
                _nPos = "หมื่น"
            Case 12
                _nPos = "แสน"
            Case 13
                _nPos = "ล้าน"
        End Select

        PositionToText = _nPos
    End Function


แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 16:51:17 By : base3000
 


 

No. 8



โพสกระทู้ ( 119 )
บทความ ( 0 )



สถานะออฟไลน์


ผมลองดูแล้ว ต้องอยู่ใน Module เท่านั้น เพิ่งรู้เหมือนกัน ใช้มาตั้งนานแล้วไม่มีปัญหา ก็เลยใช้อย่างเดียว
และก็ไม่ทราบสาเหตุเหมือนกัน ใครรู้บ้างว่าเพราะอะไร ช่วยบอกด้วย
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 17:04:07 By : base3000
 


 

No. 9



โพสกระทู้ ( 5 )
บทความ ( 0 )



สถานะออฟไลน์


เย้ๆๆๆๆๆ ทำได้แล้ว ค่ะ

ขอบคุณมาก นะค่ะ ที่ช่วย ขอบคุณจริงๆ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 17:11:45 By : tax
 


 

No. 10



โพสกระทู้ ( 1,603 )
บทความ ( 1 )



สถานะออฟไลน์


code เก่าของพี่ tong ว่าอยู่ดูแปลกๆ มรดกมาจาก vb 6.0 นี่เอง
แล้วเจ้าตัวเล็กในรูปกะ code นี่ อะรัยอายุมากกว่ากันคะ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2010-12-13 20:55:49 By : blurEyes
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : แปลงค่าตัวเลข จาก เช่น 9999ให้เป็น เก้าพันเก้าร้อยเก้าสิบเก้าบาทถ้วน ยังไงค่ะบอกทีโดยใช้ VB นะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 00
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่