設定ファイルで小数値を設定するのに問題があります。変数のタイプを尋ねられたときに、小数値を選択しています。デフォルト値は 0.10 です。これは 10 セントを模倣するためですが、プログラムを実行すると、 0.01 として表示されている変数の値を確認してください。これは、最後に「m」を追加する必要があり、設定ファイルでは許可されていないためです。これに対する回避策はありますか?
また、ユーザーは、テキスト ボックスに入力された自分の価格を設定することもできます。たとえば、これは 0.30 (30 セント) になる可能性があります。テキスト ボックスの値を 0.30m に変換するにはどうすればよいですか?
double を使用することはオプションではありません。$2.99999999 のようなものにはなりたくありません。ハードコードできるように設定ファイルで使用できれば完璧です。
返信ありがとうございます。
public void beginUser(int tblSize)
{
decimal tblPrice = 0.00m;
int minCount = 0;
decimal curCost = 0.00m;
string timeStarted = string.Format("{0:HH:mm:ss tt}", DateTime.Now);
//Setup table price
switch (tblSize)
{
case 0:
tblPrice = Properties.Settings.Default.tblSmallPrice;
//tblPrice = 0.10m //this works
break;
case 1:
tblPrice = Properties.Settings.Default.tblBigPrice;
//tblPrice = 0.15m // this works
break;
default:
tblPrice = 0.10m;
break;
}
//Check how tblPrice appears.
MessageBox.Show(Convert.ToString(tblPrice));
try
{
while (true)
{
Thread.Sleep(100);
curCost += tblPrice;
minCount += 1;
if (minCount == 60) { Thread.CurrentThread.Abort(); }
}
}
catch (ThreadAbortException)
{
TimeSpan span = TimeSpan.FromMinutes(minCount);
string output = String.Format("Cost: €{0}\r\ncurCost: {1} hour(s) {2} minutes\r\nStarted: {3}", curCost, span.Hours, span.Minutes, timeStarted);
MessageBox.Show(output);
}
}