ภาษา C# .Net ช่วยแปลงโค้ด ให้เป็น do while ทีคะ การแปลงจำนวนเงิน จากตัวเลข เป็นตัวอักษร ภาษาไทย
การแปลงจำนวนเงิน จากตัวเลข เป็นตัวอักษร ภาษาไทย
Code (C#)
public static string ThaiBaht(string txt)
{
string bahtTxt, n, bahtTH = "";
double amount;
try { amount = Convert.ToDouble(txt); }
catch { amount = 0; }
bahtTxt = amount.ToString("####.00");
string[] num = {"ศูนย์", "หนึ่ง", "สอง", "สาม", "สี่", "ห้า", "หก", "เจ็ด", "แปด", "เก้า", "สิบ"};
string[] rank = { "", "สิบ", "ร้อย", "พัน", "หมื่น", "แสน", "ล้าน" };
string[] temp = bahtTxt.Split('.');
string intVal = temp[0];
string decVal = temp[1];
if (Convert.ToDouble(bahtTxt) == 0)
bahtTH = "ศูนย์บาทถ้วน";
else
{
for (int i = 0; i < intVal.Length; i++)
{
n = intVal.Substring(i, 1);
if (n != "0")
{
if ((i == (intVal.Length - 1)) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (intVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (intVal.Length - 2)) && (n == "1"))
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(intVal.Length - i) - 1];
}
}
bahtTH += "บาท";
if (decVal == "00")
bahtTH += "ถ้วน";
else
{
for (int i = 0; i < decVal.Length; i++)
{
n = decVal.Substring(i, 1);
if (n != "0")
{
if ((i == decVal.Length - 1) && (n == "1"))
bahtTH += "เอ็ด";
else if ((i == (decVal.Length - 2)) && (n == "2"))
bahtTH += "ยี่";
else if ((i == (decVal.Length - 2)) && (n == "1"))
bahtTH += "";
else
bahtTH += num[Convert.ToInt32(n)];
bahtTH += rank[(decVal.Length - i) - 1];
}
}
bahtTH += "สตางค์";
}
}
return bahtTH;
}
ขอบคุณโค้ดของคุณRoongine Sang คะTag : .NET, C#, VS 2010 (.NET 4.x)
Date :
2013-02-28 18:41:10
By :
MeawYaKuZa
View :
1701
Reply :
3
Code นี้มันใช้ได้หรือเปล่าครับ แล้วทำไมจะต้องเปลี่ยนเป็น do...while ครับ
Date :
2013-02-28 20:56:41
By :
mr.win
โค้ดนี้ รุ่นพี่ที่มหาลัยให้มาอะคะ
ที่ต้องเป็น do while เพราะอาจารย์สั่งงานมาแล้วต้องมี คำ สั่ง if else array while do while ทำได้เกือบทุกคำสั่งแล้ว แต่ขาด do while แล้วรุ่นพี่เค้าบอกมาว่าให้นำ โค้ดนี้ไป แปลงเป็น do while ได้อะคะ
Date :
2013-02-28 22:06:11
By :
MeawYaKuZa
Code (C#)
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void SplitCash()
{
int[] pay = new int[7];
int[] numpay = new int[] { 500, 100, 50, 20, 10, 5, 1 };
for (int i = 0; i < pay.Length; i++)
{
pay[i] = changemoney / numpay[i];
changemoney = changemoney % numpay[i];
}
label15.Text = "แบงค์ 500 = " + pay[0].ToString() + " ใบ";
label16.Text = "แบงค์ 100 = " + pay[1].ToString() + " ใบ";
label17.Text = "แบงค์ 50 = " + pay[2].ToString() + " ใบ";
label18.Text = "แบงค์ 20 = " + pay[3].ToString() + " ใบ";
label19.Text = "เหรียญ 10 = " + pay[4].ToString() + " เหรียญ";
label20.Text = "เหรียญ 5 = " + pay[5].ToString() + " เหรียญ";
label21.Text = "เหรียญ 1 = " + pay[6].ToString() + " เหรียญ";
}
int qty = 0;//จำนวนเด็กอายุไม่เกิน 10 ปี+สูงไม่เกิน 120 ซม. 0฿
int qty1 = 10;//จำนวนเด็กอายุไม่เกิน 10 ปี + สูงเกิน 120 ซม. 10฿
int qty2 = 20;//จำนวนคนอายุ 13 - 20 ปี 20฿
int qty3 = 30;//จำนวนคนอายุ 21 ปี ขึ้นไป 30฿
int sum = 0;// ตัวเก็บค่า
private void button1_Click(object sender, EventArgs e)
{
sum = 0;
if (checkBox1.Checked == true)
{
qty = Convert.ToInt16(textBox1.Text);
sum += qty * 0;
}
if (checkBox2.Checked == true)
{
qty1 = Convert.ToInt16(textBox2.Text);
sum += qty1 * 10;
}
if (checkBox3.Checked == true)
{
qty2 = Convert.ToInt16(textBox3.Text);
sum += qty2 * 20;
}
if (checkBox4.Checked == true)
{
qty3 = Convert.ToInt16(textBox4.Text);
sum += qty3 * 30;
}
textBox5.Text = sum.ToString();
}
int changemoney = 0;//ตัวเก็บค่าเงินทอน
int money = 0;//เงินที่รับ
private void button2_Click(object sender, EventArgs e)
{
if (textBox6.Text == "")
{
DialogResult result = MessageBox.Show("กรุณาระบุจำนวนเงิน", "Confirm", MessageBoxButtons.OK);
if (result == DialogResult.OK)
{
textBox6.Focus();
}
}
else
{
money = Convert.ToInt16(textBox6.Text);
if (money < sum)
{
DialogResult result1 = MessageBox.Show("เงินไม่พอชำระค่าเข้าชมพิพิธภัณฑ์", "Confirm", MessageBoxButtons.OK);
if (result1 == DialogResult.OK)
{
textBox6.Clear();
textBox6.Focus();
}
}
else
{
changemoney = money - sum;
textBox7.Text = changemoney.ToString();
SplitCash();
}
}
}
}
}
Date :
2013-02-28 22:54:28
By :
MeawYaKuZa
Load balance : Server 02