|
|
|
C# WinApp มีข้อสงสัยเกี่ยวกับตัวแปรที่เป็น double |
|
|
|
|
|
|
|
จาก
https://www.thaicreate.com/dotnet/forum/119716.html
ผมแก้โค้ดเปนแบบนี้ครับ
Code (C#)
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
int[] pipett = new int[] { 1,2,3,4,5,6,7,8,9,10,25 };
int flask = 100;
#region _Function
string stepcalSTD(double conc)
{
string str = "";
double cri = 1000;
int pp = 0;
int i = 1;
do
{
if (cri / conc > 99)
{
str += Environment.NewLine + "Step " + i + " เตรียมความเข้มข้น " + cri / 10 + " mg/L ปิเปต 10 ml จาก " + cri + " mg/L ปรับ 100 ml";
cri = cri / 10;
}
else
{
pp = _Pipett(cri, conc);
str += Environment.NewLine + "Step " + i + " เตรียมความเข้มข้น " + conc + " mg/L ปิเปต " + pp + " ml จาก " + cri + " mg/L ปรับ 100 ml";
break;
}
System.Threading.Thread.Sleep(10);
i++;
} while (cri * pp / 100 != conc);
return str;
}
int _Pipett(double _C1 = 0, double _C2 = 0)
{
int p = 0;
double cc = 0;
foreach(int i in pipett)
{
cc = Convert.ToDouble(_C1 * i / flask);
MessageBox.Show(_C1 + " " + i + " " + cc + " " + _C2);
if (cc == _C2)
{
p = i;
return p;
}
System.Threading.Thread.Sleep(10);
}
return p;
}
#endregion
private void button1_Click(object sender, EventArgs e)
{
textBox2.Text = "";
double startCounter = DateTime.Now.TimeOfDay.TotalSeconds;
if (double.Parse(textBox1.Text) == 0) return;
this.textBox2.Text = stepcalSTD(double.Parse(textBox1.Text));
this.textBox2.Text += Environment.NewLine;
this.textBox2.Text += Environment.NewLine + string.Format("Total time: {0} seconds", (DateTime.Now.TimeOfDay.TotalSeconds - startCounter).ToString("#,##0.0###"));
}
}
แต่พอกรอกตัวเลข บางตัวใช้ได้ บางตัวใช้ไม่ได้
ทั้งๆที่ผล ออกมาตามเงื่อนไขแล้วก็ตาม
มันออกมาแบบนี้ครับ
Tag : .NET, Win (Windows App), C#, VS 2012 (.NET 4.x), Windows
|
|
|
|
|
|
Date :
2015-11-08 19:11:12 |
By :
lamaka.tor |
View :
904 |
Reply :
9 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ดร. สาขา A
ดร. สาขา B
ดร. สาขา C
...
...
...
...
มีเยอะมากพอฯ เกวียนจำนำ
...
...
...
ดร.โหล พอพอกับล้อยตรีแจกให้ก่อนก่อนวัย 60 (ถ้าจำไม่ผิด 1-2 ปี)
แต่ผมไม่เห็น ดร. สาขาเคมี
แต่ผมไม่เห็น ดร. สาขาคณิตศาสตร์
...
...
...
|
|
|
|
|
Date :
2015-11-08 20:12:56 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
รอคอยเธอมาแสนนาน
ทรมานทุกข์ทนหนักหนา
ระทมอยู่ในอุรา
...
...
แม้นมีอุปสรรคขวากหนาม
...
...
...
"https://www.youtube.com/watch?v=CsbuJX2Y6vA"
|
|
|
|
|
Date :
2015-11-08 20:32:18 |
By :
หน้าฮี |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันห่างกันแค่ จุด ทศนิยมเดียว
ไง๋มันไม่ได้ซะงั้นครับ
|
|
|
|
|
Date :
2015-11-09 09:29:30 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ลองเปลี่ยนตัวแปร pp เป็น double ดูได้ไหมครับ
ถ้าได้มันต้องเป็นเท่าไหร่อ่ะครับ
|
|
|
|
|
Date :
2015-11-09 09:51:27 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
มันไม่เข้าเงื่อนไข if (cc == _C2) หรือปล่าวครับ
|
|
|
|
|
Date :
2015-11-09 10:07:09 |
By :
fonfire |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอบความคิดเห็นที่ : 6 เขียนโดย : fonfire เมื่อวันที่ 2015-11-09 10:07:09
รายละเอียดของการตอบ ::
อันนี้ไม่แน่ใจครับ
แต่
cc = Convert.ToDouble(_C1 * i / flask); // 0.003
_C2 = 0.003
มันน่าจะเท่ากันไม่ใช่รึครับ
ผมลอง if (0.003 ==_C2 )
ตัวนี้ผ่าน
แสดงว่าต้องมาจาก
_C1 * i / flask
แต่งงตรงที่
cc = Convert.ToDouble(_C1 * i / flask) มันก็ได้ 0.003
_C2 = 0.003
ไง๋มันบอกว่าไม่เท่ากัน
|
|
|
|
|
Date :
2015-11-09 10:54:15 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้แล้วครับ
ได้แบบงง ๆๆๆ
แค่เปลี่ยนจาก
Convert.ToDouble( _C1 * i / flask)
มาเป็น
Convert.ToDouble(string.Format("{0:0.000000}", _C1 * i / flask))
Code (C#)
int _Pipett(double _C1 = 0, double _C2 = 0)
{
int p = 0;
int[] pipett = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 25 };
foreach (int i in pipett)
{
//Convert.ToDouble(string.Format("{0:0.000000}", _C1 * i / flask))
if (Convert.ToDouble(string.Format("{0:0.000000}", _C1 * i / flask)) == _C2)
{
MessageBox.Show(_C1 + " " + i + " " + _C1 * i / flask + " " + _C2);
p = i;
return p;
}
System.Threading.Thread.Sleep(10);
}
return p;
}
แค่แปลกใจว่า 0.3,0.03 0.0003 ได้ แต่ 0.003 ไม่ได้
แต่พอเปลี่ยนมาเป็น Convert.ToDouble(string.Format("{0:0.000000}", _C1 * i / flask)) ก็ได้เลย
|
|
|
|
|
Date :
2015-11-09 11:35:22 |
By :
lamaka.tor |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Date :
2015-11-09 15:18:12 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|