我正在编写一个简单的代码来计算租金。我的代码(理论上)应该像这样工作:
基本价格= 300(7天) 而当用户将天数从7天增加到10天(例如10天)时,价格会上涨,而当用户天数从10天减少到8天时,价格会下降。
我正在使用C#Windows窗体中的日期时间组件
我的代码:
int baseprice = Convert.ToInt32(label21.Text);
int price = days * baseprice* 0.3;
if (days >= 7)
{
int totalprice = baseprice + price;
label21.Text = Convert.ToString(totalprice);
}
此代码有效,但是随着时间的减少,它一直在增加而不是减少
答案 0 :(得分:1)
首先,我会尝试使用十进制类型而不是整数。
第二,尝试以不同的方式处理逻辑。尝试根据其他天数计算价格。下面的代码尚未准备好,它需要从UserInput中获取一个变量。
int baseprice = Convert.ToInt32(label21.Text);
decimal unit_cost= baseprice/7;
decimal price = days *unit_cost;
int additional_days = 3; // use some variable input from user so it would be dynamic
if (days >= 7)
{
int totalprice = baseprice + unit_cost * additonal_days
label21.Text = Convert.ToString(totalprice);
}
答案 1 :(得分:0)
您要这样做吗?
int price = days * baseprice * 0.3;
int totalprice = baseprice + (days >= 7 ? price : 0);
label21.Text = totalprice.ToString();
还是这个?
int totalprice = (int)(days * baseprice / 7f);
label21.Text = totalprice.ToString();