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

Registered : 107,913

HOME > .NET Framework > Forum > [c#.net] สอบถามเรื่องการแปลงตัวเลขเป็นตัวอักษรครับ



 

[c#.net] สอบถามเรื่องการแปลงตัวเลขเป็นตัวอักษรครับ

 



Topic : 036051



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

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

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




ผมอยากแปลงตัวเลข 1000 บาท เป็น หนึ่งพันบาทถ้วน ไม่ทราบว่ามีฟังก์ชั่นสำหรับ c# ไหมครับ ขอบคุณนะครับ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2009-12-21 12:41:18 By : yordafone View : 3509 Reply : 6
 

 

No. 1



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



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


ก้อมีอยู่นะเด๋วตอนเย็นมาโพสให้






Date : 2009-12-21 13:11:13 By : tanapop
 


 

No. 2



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



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

http://www.ninemee.com/?p=395
Date : 2009-12-21 14:24:45 By : mee079
 

 

No. 3



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

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

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


ขอบคุณครับ
Date : 2009-12-21 17:31:01 By : yordafone
 


 

No. 4



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

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

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


อีกวิธีครับ
ThaiCreate:Convert number to ThaiBaht with Excel by .Net
Date : 2009-12-21 22:01:20 By : salapao_codeman
 


 

No. 5



โพสกระทู้ ( 74,017 )
บทความ ( 838 )

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

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



Go to : Convert number to Thai bath with Excel by .Net

Code (VB.NET)
Function changenum(num As String) As String
   Dim i As Integer, max As Integer, r As String, n As String
   num = Trim(Str(Val(num)))
   max = Len(num)
   For i = 1 To max
      r = Choose(((max - i + 1) Mod 6) + 1, "แสน", "", "สิบ", "ร้อย", "พัน", "หมื่น")
      n = Choose(Mid(num, i, 1) + 1, "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า")
      If r = "สิบ" And n = "หนึ่ง" Then n = ""
      If n = "หนึ่ง" And r = "" And max <> 1 Then n = "เอ็ด"
      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



Go to : vb พอจะแปลงตัวเลข เป็น อักษรได้หรือเปล่าคับ ต้องใช้ฟังก์ชันอะไรบ้าง

Go to : อยากทราบวิธีแปลงตัวเลขเป็นตัวหนังสือครับ VB รบกวนด้วยครับขอแบบมีสตางค์ด้วยนะครับ ขอบคุณครับ
Date : 2011-11-04 11:41:27 By : webmaster
 


 

No. 6

Guest


Code (C#)
public static string ToWord(decimal PriceAmount)
        {
            try
            {
                return MoneyToWordBath(PriceAmount) + MoneyToWordStarg(PriceAmount);
            }
            catch
            {
                return string.Empty;
            }
        }

public static string MoneyToWordBath(decimal PriceAmount)
        {
            try
            {
                string Price = Math.Truncate(PriceAmount).ToString();
                int len = Price.Length;
                if (len > 13)
                {
                    MessageBox.Show("ไม่รองรับ !");
                    return "";
                }

                string Word = string.Empty;
                string m = string.Empty;
                string n = string.Empty;
                for (int i = 0; i < Price.Length; i++)
                {
                    n = string.Empty;
                    m = string.Empty;
                    
                    n = (ltxt().FindAll(p => p.Num == Price.ToArray()[i].ToString()).FirstOrDefault().Word);
                    if (Price.ToArray()[i].ToString() != "0")
                    {
                        m = (lMoney().FindAll(p => p.index == len.ToString()).FirstOrDefault().word ?? string.Empty);
                    }
                    //if (item.ToString() == "1" && len == 1 && Price.Length >= 2) { n = "เอ็ด"; }
                    if (Price.ToArray()[i].ToString() == "1" && len == 1 && Price.Length >= 2)
                    {
                        var index = Price.ToList()[i - 1];
                        n = "เอ็ด";
                        if (index.ToString() == "0")
                        {
                            n = "หนึ่ง";
                        }
                    }

                    if (Price.ToArray()[i].ToString() == "1" && len == 7 && Price.Length >= 8)
                    {
                        var index = Price.ToList()[i-1];
                        n = "เอ็ด";
                        if (index.ToString() == "0")
                        {
                            n = "หนึ่ง";
                        }
                    }

                    if (Price.ToArray()[i].ToString() == "1" && (len == 2 || len == 8)) { n = ""; }
                    if (Price.ToArray()[i].ToString() == "2" && (len == 2 || len == 8)) { n = "ยี่"; }

                    Word += (n + m); len--;
                }

                return Word == string.Empty ? "" : Word + "บาท";
            }
            catch (Exception)
            {
                return string.Empty;
            }           
        }
 public static string MoneyToWordStarg(decimal PriceAmount)
        {
            try
            {
                decimal dc = (PriceAmount - Math.Truncate(PriceAmount));
                if (!dc.ToString("n2").Contains('.')) { return string.Empty; }

                string Price = dc.ToString("n2").Split('.')[1];
                int len = Price.Length;
                if (len > 13)
                {
                    MessageBox.Show("ไม่รองรับ !");
                    return string.Empty;
                }
                string Word = string.Empty;
                string m = string.Empty;
                string n = string.Empty;
                foreach (var item in Price.ToArray())
                {
                    n = string.Empty;
                    m = string.Empty;

                    n = (ltxt().FindAll(p => p.Num == item.ToString()).FirstOrDefault().Word);
                    if (item.ToString() != "0")
                    {
                        m = (lMoney().FindAll(p => p.index == len.ToString()).FirstOrDefault().word ?? string.Empty);
                    }
                    if (item.ToString() == "1" && len == 1 && Price.Length >= 2) { n = "เอ็ด"; }
                    if (item.ToString() == "1" && (len == 2 || len == 8)) { n = ""; }
                    if (item.ToString() == "2" && (len == 2 || len == 8)) { n = "ยี่"; }

                    Word += (n + m);
                    len--;
                }
                return Word == string.Empty ? "ถ้วน" : Word + "สตางค์";
            }
            catch
            {

                return string.Empty;
            }
        }

        static List<NumberList> ltxt()
        {
            var txt = new List<NumberList>();
            txt.Add(new NumberList { Num = "1", Word = "หนึ่ง" });
            txt.Add(new NumberList { Num = "2", Word = "สอง" });
            txt.Add(new NumberList { Num = "3", Word = "สาม" });
            txt.Add(new NumberList { Num = "4", Word = "สี่" });
            txt.Add(new NumberList { Num = "5", Word = "ห้า" });
            txt.Add(new NumberList { Num = "6", Word = "หก" });
            txt.Add(new NumberList { Num = "7", Word = "เจ็ด" });
            txt.Add(new NumberList { Num = "8", Word = "แปด" });
            txt.Add(new NumberList { Num = "9", Word = "เก้า" });
            txt.Add(new NumberList { Num = "0", Word = "" });
            return txt;
        }

        static List<UnitList> lMoney()
        {
            var wmney = new List<UnitList>();
            wmney.Add(new UnitList { index = "1", word = "" });
            wmney.Add(new UnitList { index = "2", word = "สิบ" });
            wmney.Add(new UnitList { index = "3", word = "ร้อย" });
            wmney.Add(new UnitList { index = "4", word = "พัน" });
            wmney.Add(new UnitList { index = "5", word = "หมื่น" });
            wmney.Add(new UnitList { index = "6", word = "แสน" });
            wmney.Add(new UnitList { index = "7", word = "ล้าน" });
            wmney.Add(new UnitList { index = "8", word = "สิบ" });
            wmney.Add(new UnitList { index = "9", word = "ร้อย" });
            wmney.Add(new UnitList { index = "10", word = "พัน" });
            wmney.Add(new UnitList { index = "11", word = "หมื่น" });
            wmney.Add(new UnitList { index = "12", word = "แสน" });
            wmney.Add(new UnitList { index = "13", word = "ล้านล้าน" });
            return wmney;
        }

    }

    public class NumberList
    {
        public string Num { get; set; }
        public string Word { get; set; }
    }

    public class UnitList
    {
        public string index { get; set; }
        public string word { get; set; }
    }

Date : 2019-11-05 10:57:34 By : anonymous
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : [c#.net] สอบถามเรื่องการแปลงตัวเลขเป็นตัวอักษรครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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: Voake, Comcube, รับทำเว็บไซต์ รับเขียนโปรแกรม

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