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 > C# WipApp ช่วยออกแบบโค้ด เปลี่ยน ตัวเลขให้เป็นอักษร ในกรณีที่เกิน ล้าน ให้หน่อยครับ



 

C# WipApp ช่วยออกแบบโค้ด เปลี่ยน ตัวเลขให้เป็นอักษร ในกรณีที่เกิน ล้าน ให้หน่อยครับ

 



Topic : 133330



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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



Code (C#)
public static string ToArabicToThaiText(this object input)
        {

            string txtReturn = "",strdecVal = "",n;
            string[] num = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
            string[] rank = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };

            // Convert.ToDouble ก่อน
            double amount;
            try { amount = Convert.ToDouble(input); }
            catch { amount = 0; }

            //แยก split จาก .
            string[] temp = amount.ToString().Split('.');
            //ค่าหน้า .
            string intVal = temp[0];
            //ค่าหลัง . ไม่มี . ใช้เป็น ค่าว่าง
            string decVal = (temp.Length > 1) ? temp[1] : "";


           // เอาค่า หน้าจุด มาคิด แยกทีละ 6 ตัว ใส่หน่วย
             /*


             */
            
            //เอาหลัง . มาคิด ไม่ใส่หน่วย
                for (int i = 0; i < decVal.Length; i++)
            {
                strdecVal += num[Convert.ToInt32(decVal.Substring(i, 1))];

            }

            return txtReturn;

        }



ผมเขียนโปรแกรม KidsLearning ไว้แจก นะครับ กะว่าจะเขียนให้ครบตั้งแต่ อนุบาล ไปถึง ม.6 ให้ได้ หลายวิชาที่สุดเท่าที่จะทำได้
หามีใครอยากแนะนำให้เพิ่ม ความรู้ตัวไหน ก็บอกได้นะครับ ยิ่ง ส่งโค้ดมาด้วยยิ่งดีใหญ่(5555)


ตัวอย่างนะครับ

123456789 >> หนึ่งร้อยยี่สิบสามล้านสี่แสนห้าหมื่นหกพันเจ็ดร้อยแปดสิบเก้า
123456789012345 >>หนึ่งร้อยยี่สิบสามล้านสี่แสนห้าหมื่นหกพันเจ็ดร้อยแปดสิบเก้าล้านหนึ่งหมื่นสองพันสามร้อยสี่สิบห้า
1234567890987650000 >>หนึ่งล้านสองแสนสามหมื่นสี่พันห้าร้อยหกสิบเจ็ดล้านแปดแสนเก้าหมื่นเก้าร้อยแปดสิบเจ็ดล้านหกแสนห้าหมื่น



Tag : .NET, C#, VS 2013 (.NET 4.x)









ประวัติการแก้ไข
2019-03-19 10:43:18
Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2019-03-19 10:29:32 By : lamaka.tor View : 1136 Reply : 7
 

 

No. 1



โพสกระทู้ ( 9,587 )
บทความ ( 2 )



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


ประยุกต์เอาน่าจะได้นะครับ
https://www.thaicreate.com/php/forum/068746.html






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-19 12:20:29 By : Chaidhanan
 


 

No. 2



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

Code (C#)
     #region _ToArabicToThaiText
        public static string ToArabicToThaiText(this object input)
        {

            string txtReturn = "",txtdecVal = "",txtintVal = "",n;
            string[] num = { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ" };
            string[] rank = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };

            // Convert.ToDouble ก่อน
            double amount;
            try { amount = Convert.ToDouble(input); }
            catch { amount = 0; }

            //แยก split จาก .
            string[] temp = amount.ToString().Split('.');
            //ค่าหน้า .
            string intVal = temp[0];
            //ค่าหลัง . ไม่มี . ใช้เป็น ค่าว่าง
            string decVal = (temp.Length > 1) ? temp[1] : "";

            for (int i = 0; i < intVal.Length; i++)
            {
                n = intVal.Substring(i, 1);
                if (n != "0")
                {
                    if (((i == (intVal.Length - 1)) || (i == (intVal.Length - 7) || (i == (intVal.Length - 13)))) && (n == "1"))
                        txtintVal += "เอ็ด";
                    else if (((i == (intVal.Length - 2)) || (i == (intVal.Length - 8) || (i == (intVal.Length - 14)))) && (n == "2"))
                        txtintVal += "ยี่";
                    else if ((i == (intVal.Length - 2)) && (n == "1"))
                        txtintVal += "";
                    else
                        txtintVal += num[Convert.ToInt32(n)];
                    txtintVal += rank[(intVal.Length - i) - 1];
                }
            }

                //เอาหลัง . มาคิด ไม่ใส่หน่วย
                for (int i = 0; i < decVal.Length; i++)
            {
                txtdecVal += (decVal.Substring(i, 1) == "0")?"ศูนย์":num[Convert.ToInt32(decVal.Substring(i, 1))];
            }

                //นำ ทั้ง ก่อน และ หลัง จุด มารวมกัน
            txtReturn = txtintVal;
            if(txtdecVal.Trim().Length>0)
            txtReturn += "จุด" + txtdecVal;

            //ส่งกลับค่า
            return txtReturn;

        }
        public static string ToArabicToThaiText(this int input)
        {
            return input.ToString().ToArabicToThaiText();
        }
        public static string ToArabicToThaiText(this double input)
        {
            return input.ToString().ToArabicToThaiText();
        }
     

        #endregion


sadfss
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-19 12:51:01 By : lamaka.tor
 

 

No. 3



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

แต่มันยังไม่เป็น ศูนย์ศูนย์ ต่อท้ายจุด

หดหกเ

เดี๋ยวคงต้องแก้ให้สมบูรณ์กว่านี้ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-19 12:55:44 By : lamaka.tor
 


 

No. 4

Guest


อ่านเฉพาะจำนวนทศนิยม (tmp[1])


Code (C#)
        var x1 = decimalPlaceOnly(tmp[1]);
        var x2 = decimalPlaceOnly(".1284500");
        var x3 = "จุด" + x2; //จุดหนึ่งสองแตดสี่ห้าศูนย์ศูนย์

        private string decimalPlaceOnly(string decValue)
        {
            return new Regex("[0-9]").Replace(decValue.Replace(".",""), new MatchEvaluator(z =>
            {
                return new string[] { "ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แตด", "เก้า" }[int.Parse(z.Value)];
            }));
        }

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-19 16:06:32 By : หน้าฮี
 


 

No. 5

Guest


โลกมันกว้างนะ
ลองค้นหาดู พี่ goo ก็มี
https://www.nuget.org/packages/ThaiBahtText/

ปล.
ถ้าจะเขียนโปรแกรมแจกเด็กๆ ควรจะเขียนพวก java หรือก็เว็บไปเลยครับ ถ้าเป็นงานประเภทนี้คิดว่าจะเหมาะกว่า
ใส่รูป ใส่สีข้อความ ทำ animation ง่ายกว่าเขียน c# เยอะครับ "คงไม่ได้ทำให้ท้อนะครับ"

การเรียนรู้สิ่งใหม่ๆย่อมไม่มีวันสิ้นสุด
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-20 14:30:12 By : บัญดิษฐ
 


 

No. 6



โพสกระทู้ ( 4,440 )
บทความ ( 23 )



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

ตอบความคิดเห็นที่ : 5 เขียนโดย : บัญดิษฐ เมื่อวันที่ 2019-03-20 14:30:12
รายละเอียดของการตอบ ::
เดี๋ยวลองทำควบคู่กันไปครับ

แต่ไม่เคยเขียน java แบบเป็นโปรเจค จริงๆจังๆซักที ก็น่าเล่นเหมือนกัน จะได้พัฒนาตัวเองขึ้นไปอีกครับ

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-20 15:07:46 By : lamaka.tor
 


 

No. 7

Guest


Java <> JavaScript

ข้อความนี้ผมคัดลอกมาจากอินเตอร์เน็ต และมันถูกจริตกับผม

Quote:
Javascript มันสามารถทำงานสนับสนุน html 5 และ css ได้ตามมาตรฐานใหม่
นอกจากนั้นยังมีคนพัฒนา electron ทำให้ javascript ทำงานเหมือน desktop app ได้ด้วย
ซึ่งมันมีข้อดีเหนือภาษาอื่นคือ ทำงานได้บนทุก OS และไม่ต้องติดตั้ง VM เพิ่ม เพราะทำงานบน browser ได้เลย
ภาษาอื่น เช่น c#, vb, vb.net, asp, php, java จะค่อยๆหายไป ขยับไปอยู่ backend แทน เพราะลูกเล่นมันน้อยกว่า html 5 + css
(จริงๆมันก็ทำได้เหมือนกันทั้งหมด แต่จะต้องลงแรงมากกว่ามากๆ)
ในอนาคต javascript ก็อาจจะทำได้ทุกอย่างเหมือนภาษาอื่นๆด้วย ถ้าแนวโน้มยังเป็นอย่างนี้ต่อไปเรื่อยๆ
แนะนำว่า ก่อนจะลงทุนเวลาอะไร ลองค้นหาจากพวกหางานดูครับ แล้วจะรู้ว่าตอนนี้ทิศทางไปทางไหน
ตอนนี้ front end ค่าจ้างสูงมากกว่าพวก classic language แล้วครับ start ก็ 30000-40000 แล้ว
ถ้าจะทำงานด้านนี้ เรื่องเวลาเป็นเรื่องสำคัญ อย่าหลงเสียเวลาไปเรียน สิ่งที่กำลังจะหมดยุค
ที่อาจารย์ส่วนมากสอน เขาจะสอนพิ้นฐานเท่านั้น เพราะกว่าเขาจะเสียเวลาเรียนมา ก็ใช้เวลา
ถ้าจะมาสอนเรื่องใหม่ทุกปี ก็เสียดายเวลาที่ศึกษามา และถ้ามาศึกษาใหม่ทุกปี เพื่อสอนก็ทำไม่ได้
เลยทำให้การศึกษาไทย มันไม่ค่อยพัฒนา เพราะพัฒนาคนได้ช้ากว่าเทคโนโลยี่เยอะ
ส่วนพวกจัดหางาน ก็คิดแต่จะหาคนทำงานเป็นแล้ว ไม่คิดสร้างกลุ่มคนทำ r&d พัฒนาคนเพื่อตอบสนองความต้องการใหม่ๆของตลาด
มันก็ยิ่งขาดตลาดเข้าไปอีก เหมือนกับคิดแต่จะขุดน้ำมัน แต่ไม่หาแหล่งพลังงานชนิดใหม่ๆ สักวันมันก็จบ เพราะน้ำมันหมด

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2019-03-21 08:53:08 By : หน้าฮี
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : C# WipApp ช่วยออกแบบโค้ด เปลี่ยน ตัวเลขให้เป็นอักษร ในกรณีที่เกิน ล้าน ให้หน่อยครับ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 04
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 อัตราราคา คลิกที่นี่