C# 在xamarin上除以0时出现异常

C# 在xamarin上除以0时出现异常,c#,xaml,xamarin,C#,Xaml,Xamarin,有人能给我指出正确的方向吗?我已经读过一些关于如何抛出异常的其他方法,但似乎都不管用。其想法是将贷款、利息和期限与xaml上的条目绑定Total将明显绑定到标签,具体取决于用户输入的内容 private int loanAmount { get; set; } public int Loan { get => loanAmount; set { loa

有人能给我指出正确的方向吗?我已经读过一些关于如何抛出异常的其他方法,但似乎都不管用。其想法是将贷款、利息和期限与xaml上的条目绑定Total将明显绑定到标签,具体取决于用户输入的内容

 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;
      }