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,027

HOME > .NET Framework > Forum > C# แปลงตัวเลขเป็นข้อความภาษาอังกฤษแล้วเก็บค่าลงใน List นอก method ไม่ได้ครับ



 

C# แปลงตัวเลขเป็นข้อความภาษาอังกฤษแล้วเก็บค่าลงใน List นอก method ไม่ได้ครับ

 



Topic : 113350



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



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




ผมต้องการแปลงตัวเลขเป็นข้อความภาษาอังกฤษครับ ซึ่งผมได้โค้ดการแปลงตัวเลขเป็นข้อความภาษาอังกฤษจากเว็บนี้ครับ http://stackoverflow.com/questions/2729752/converting-numbers-in-to-words-c-sharp แล้วเอามาแก้ไขให้บันทึกข้อความลงใน List ซึ่งก็ใช้งานได้ดี

แต่ผมต้องการเอา List ออกไปประกาศนอก method ครับ เพื่อจะได้ใช้ ttsEN.Add() ที่ด้านนอกด้วย แต่พอประกาศที่ด้านนอกแล้ว Run จะได้ผลลัพธ์แบบนี้ครับ

Quote:
four
four
thousand
five
five
hundred
and
fifteen


ซึง four กับ five ซ้ำกัน ผมจึง comment ที่ ttsEN.Add(unitsMap[number]); ผลที่ได้ถูกต้องแต่ไม่มี fifteen หลัง and ครับ ไม่ทราบว่าต้องแก้ยังไงครับ

Code
 public List<String> NumberToWordEN(int number)
        {
           // List<string> ttsEN = new List<string>();   // ตรงนี้ประกาศนอก method แล้วค่าผิดพลาดข้อความซ้ำกัน

            var unitsMap = new[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven", "twelve", "thirteen", "fourteen", "fifteen", "sixteen", "seventeen", "eighteen", "nineteen" };
            var tensMap = new[] { "zero", "ten", "twenty", "thirty", "forty", "fifty", "sixty", "seventy", "eighty", "ninety" };


            if (number == 0)
            {
                ttsEN.Add("zero");
                return ttsEN;
            }
            string words = "";

            if ((number / 1000000) > 0)
            {
                words += NumberToWordEN(number / 1000000) + " million ";

                ttsEN.Add(unitsMap[(number / 1000000)]);
                ttsEN.Add("million");

                number %= 1000000;
            }

            if ((number / 1000) > 0)
            {
                words += NumberToWordEN(number / 1000) + " thousand ";

                ttsEN.Add(unitsMap[(number / 1000)]);
                ttsEN.Add("thousand");

                number %= 1000;
            }

            if ((number / 100) > 0)
            {
                words += NumberToWordEN(number / 100) + " hundred ";

                ttsEN.Add(unitsMap[(number / 100)]);
                ttsEN.Add("hundred");

                number %= 100;
            }

            if (number > 0)
            {
                if (words != "")
                {
                    words += "and ";
                    ttsEN.Add("and");
                }

                if (number < 20)
                {
                    words += unitsMap[number];
                    ttsEN.Add(unitsMap[number]);   // ถ้า comment ตรงนี้จะได้ค่าถูกต้องแต่ไม่มี fifteen หลัง and
                }
                else
                {
                    words += tensMap[number / 10];
                    ttsEN.Add(tensMap[number / 10]); 

                    if ((number % 10) > 0)
                    {
                        words += "-" + unitsMap[number % 10];
                        ttsEN.Add(unitsMap[number % 10]);
                    }
                }

            }
            return ttsEN;

        }




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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2014-12-19 18:52:38 By : mmc01 View : 1918 Reply : 1
 

 

No. 1



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



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

ประกาศข้างในถูกแล้งนิครับ
เวลาใช้งานก็แค่

List<String> num = NumberToWordEN(123456)

แค่นี้ก็ใช้งานได้แล้วครับ
ประกาศข้างนอกเผื่อตัวอื่นอยากใช้งาน method นี้ด้วยละ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2014-12-20 11:02:05 By : lamaka.tor
 

   

ค้นหาข้อมูล


   
 

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