【发布时间】:2014-03-13 02:50:10
【问题描述】:
我已经完成了这段代码,但我不确定它是否会工作。但在我尝试执行程序之前,我需要做的最后一件事是将我创建的用于计算折扣到货币的双精度转换为输出到标签。这是我的代码..
private void btnCharacteristicsContinue_Click(object sender, EventArgs e)
{
int intStudentClass = lstClass.SelectedIndex;
int intParkingSpace = lstNeedsCampusParking.SelectedIndex;
double dblParkingDiscount;
double dblFinalParking;
if (lstNeedsCampusParking.SelectedIndex.ToString() == ("No"))
{
dblFinalParking = 0;
}
else
{
switch (intStudentClass)
{
case 0:
case 1:
dblParkingDiscount = 300;
if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
{
dblFinalParking = dblParkingDiscount * .25;
}
else
{
dblFinalParking = dblParkingDiscount;
}
break;
case 2:
case 3:
dblParkingDiscount = 300 * .1;
if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
{
dblFinalParking = dblParkingDiscount * .25;
}
else
{
dblFinalParking = dblParkingDiscount;
}
break;
case 4:
dblParkingDiscount = 300 * .2;
if (lstLiveOnCampus.SelectedIndex.ToString() == ("Yes"))
{
dblFinalParking = dblParkingDiscount * .25;
}
else
{
dblFinalParking = dblParkingDiscount;
}
break;
}
lblCharacteristicsOutput.Text = dblFinalParking;
}
【问题讨论】:
-
请注意:您可以删除字符串文字周围的大括号。
"Yes"而不是("Yes") -
我强烈建议不要在这里使用 double 开始。 Decimal 是一种更适合货币值的类型。
-
您应该避免使用匈牙利表示法 (stackoverflow.com/questions/111933/…) - 您可能要将双精度类型更改为十进制 - 您是否也要重命名所有变量?