  | 
              
	              
	                
  
    |   | 
   
  
    
        
        C# WipApp ช่วยออกแบบโค้ด เปลี่ยน ตัวเลขให้เป็นอักษร ในกรณีที่เกิน ล้าน ให้หน่อยครับ     | 
   
  
    |   | 
   
 
 
 
	
		
			  | 
	   | 
	    | 
		
			  | 
	 
	
		
			  | 
		 		   | 
	  	    
          
            
			
	
			
			 
                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	
                             | 
           
          
            
              
                   | 
                   | 
                   | 
               
              
                   | 
                
                    
                      | Date :
                          2019-03-19 10:29:32 | 
                      By :
                          lamaka.tor | 
                      View :
                          1375 | 
                      Reply :
                          7 | 
                     
                  | 
                   | 
               
              
                   | 
                   | 
                   | 
               
              | 
           
          
            | 
			 | 
           
         
	    
		             | 
		
			  | 
	 
	
		
			  | 
		  | 
		
			  | 
		
			  | 
	 
 
              
  
          
		
     
		
	     
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 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
 
 
                         
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-03-19 12:51:01 | 
                        By :
                            lamaka.tor | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 แต่มันยังไม่เป็น ศูนย์ศูนย์ ต่อท้ายจุด 
 
  
 
เดี๋ยวคงต้องแก้ให้สมบูรณ์กว่านี้ครับ                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-03-19 12:55:44 | 
                        By :
                            lamaka.tor | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 อ่านเฉพาะจำนวนทศนิยม (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 :
                            หน้าฮี | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	  
        
             | 
            | 
            | 
             | 
         
        
             | 
                       | 
          
            
               
                 โลกมันกว้างนะ 
ลองค้นหาดู พี่ goo ก็มี  
https://www.nuget.org/packages/ThaiBahtText/ 
 
ปล. 
ถ้าจะเขียนโปรแกรมแจกเด็กๆ ควรจะเขียนพวก java หรือก็เว็บไปเลยครับ ถ้าเป็นงานประเภทนี้คิดว่าจะเหมาะกว่า 
ใส่รูป ใส่สีข้อความ ทำ animation ง่ายกว่าเขียน c# เยอะครับ "คงไม่ได้ทำให้ท้อนะครับ" 
 
การเรียนรู้สิ่งใหม่ๆย่อมไม่มีวันสิ้นสุด                        
               
               | 
             
            
              
			                              
                              
              
                
                     | 
                     | 
                     | 
                 
                
                     | 
                  
                      
                        | Date :
                            2019-03-20 14:30:12 | 
                        By :
                            บัญดิษฐ | 
                         
                    | 
                     | 
                 
                
                     | 
                     | 
                     | 
                 
                | 
             
           
			         | 
             | 
         
        
             | 
            | 
             | 
             | 
         
          
	    
     
               
		
     
		
	     
	    
     
               
		
     
		
	     
	    
     
      		  
	
     | 
   
 
                 |