C# 在xamarin上除以0时出现异常
有人能给我指出正确的方向吗?我已经读过一些关于如何抛出异常的其他方法,但似乎都不管用。其想法是将贷款、利息和期限与xaml上的条目绑定Total将明显绑定到标签,具体取决于用户输入的内容C# 在xamarin上除以0时出现异常,c#,xaml,xamarin,C#,Xaml,Xamarin,有人能给我指出正确的方向吗?我已经读过一些关于如何抛出异常的其他方法,但似乎都不管用。其想法是将贷款、利息和期限与xaml上的条目绑定Total将明显绑定到标签,具体取决于用户输入的内容 private int loanAmount { get; set; } public int Loan { get => loanAmount; set { loa
private int loanAmount { get; set; }
public int Loan
{
get => loanAmount;
set
{
loanAmount = value;
OnPropertyChanged("Loan");
CalculateAPR();
}
}
private int intRate { get; set; }
public int Interest
{
get => intRate;
set
{
intRate = value;
OnPropertyChanged("Interest");
CalculateAPR();
}
}
private int loanLength { get; set; }
public int Length
{
get => loanLength;
set
{
loanLength = value;
OnPropertyChanged("Length");
CalculateAPR();
}
}
private string total { get; set; }
public string Total
{
get => total;
set
{
total = value;
OnPropertyChanged("Total");
}
}
public void CalculateAPR()
{
Total = "£" + (Loan * Length) / Interest;
}
}
如果你想扔
如果你想处理
或
您必须确保您的兴趣不是0。显然,如果您的利息为0,则等式
(贷款*长度)/利息不可计算
您可以尝试使用以下解决方案之一
第一个解决方案:
public void CalculateAPR()
{
如果(利息!=0){
总额=“(英镑”+(贷款*期限)/利息;
}否则{
总数:“(英镑-”;
}
}
第二种解决方案:
private int?intRate{get;set;}
公共整数?兴趣
{
get=>intRate;
设置{
intRate=值;
不动产变更(“利息”);
calculatear();
}
}
公共空间计算程序()
{
总额=“(英镑”+(贷款*期限)/(利息??1);
}
如果您的兴趣尚未得到满足,则取决于您对总标签的期望 这里有几件事:
- 我建议将利率设为
双倍
,这样可以表示分数利率
- APR的计算方法是将一年中的周期数相乘,而不是长度(单位是多少?)。如果“利率”是月利率,则将利息乘以12
- 如果要在未设置利息值时显示错误,可以将利息设置为空(
int?
),并执行如下操作:Total=interest.HasValue?“;”+(利息*12):“-”代码>
如果利率为
0
,则APR
也为0
。因此,在尝试进行除法之前,只需检查该情况:
public void CalculateAPR()
{
Total = "£" + Interest == 0 ? 0 : (Loan * Length) / Interest;
}
Total=“£”+利息==0?0:(贷款*期限)/利息代码>
public void CalculateAPR()
{
if(Interest == 0)
{
Total = "...";
}
else
{
Total = "£" + (Loan * Length) / Interest;
}
}
public void CalculateAPR()
{
try
{
Total = "£" + (Loan * Length) / Interest;
}
catch (DivideByZeroException)
{
Total = "...";
}
}
public void CalculateAPR()
{
Total = "£" + Interest == 0 ? 0 : (Loan * Length) / Interest;
}