创建除法方法



我正在尝试编写一种方法,该方法需要两个整数A和B并将它们分开。但是我希望结果是双重的。我尝试了两种方法:

(1)

public int divide(int a, int b) {
    if (b == 0) {
       System.out.println("Error, division by zero is undefined!");
    return 0;
    }  
    else {
       a = Double.parseDouble(a);
       b = Double.parseDouble(b);
       return a / b;
    }
}

(2) cast

public int divide(int a, int b) {
    if (b == 0) {
       System.out.println("Error, division by zero is undefined!");
    return 0;
    }  
    else {
       return (double) a / b;
    }
}

第一个代码生成错误消息:

error: incompatible types: int cannot be converted to String
        a = Double.parseDouble(a);
                               ^

第二秒生成错误消息时:

error: incompatible types: int cannot be converted to Double
        return (Double) a / b;
                        ^

任何人都可以解释为什么这些代码不起作用,并向我展示如何编写功能代码?

double.parsedouble()需要一个字符串作为输入,因此double.parsedouble(" 4")可以使用,但是double.parsedouble(4)不正确。尝试将所有参数更改为双打,并将返回类型更改为双重,以避免在代码中进行类型铸造。另外,如果用户想将两个小数值分开,则他/她不需要调用另一个功能来执行。

public double divide(double numerator, double denominator)
{
    if(denominator == 0)
    {
        System.out.println("Error cannot divide by 0");
        return 0.0;
    }
    else
    {
        return numerator / denominator;
    }
}

如果您希望参数是整数,则需要返回类型。

public double divide(int numerator, int denominator)
{
    if(denominator == 0)
    {
        System.out.println("Error cannot divide by 0");
        return 0;
    }
    return (double)numberator / denominator;
}
public double divide(int a, int b)
 { 
   if (b == 0) 
   {
       System.out.println("Error, division by zero is undefined!"); 
       return 0; 
    } 
    else 
    {
         return ((double)a) / b;
     } 
   }

您唯一的问题是将int返回并铸造为双对象。

您的方法返回int,但是return (Double) a / b;返回双重。您应该更改它,以便您拥有

public double divide(int a, int b) {

作为第一行(如果要返回double)或

return (int) a / b;

如果要返回int

  1. 如果您希望结果是双倍的,则需要更改函数的返回类型double。
  2. 使用double.parsedouble(string.valueof(a))获取双重值。
  3. 如果您不更改您功能的返回类型,则会丢失如果将响应作为小数值,则精确度。因此,请更改返回功能的类型

第一个问题是Double.parseDouble()乘字符串返回双重:

 public double divide(int a, int b) {
        if (b == 0) {
           System.out.println("Error, division by zero is undefined!");
        return 0;
        }  
        else {
           double c = Double.parseDouble(a + ".0");
           double d = Double.parseDouble(b + ".0");
           return c / d;
        }
    }

在第二个methode中,您需要正确施放:

public double divide(int a, int b) {
    if (b == 0) {
       System.out.println("Error, division by zero is undefined!");
    return 0;
    }  
    else {
       return ((double)a) / ((double)b);
    }
}

相关内容

  • 没有找到相关文章

最新更新