Java:算术

Java:算术,java,math,Java,Math,你看到这个代码有什么错误吗?在thosen不工作的情况下,它返回一个NaN public class Method2 extends GUIct1 { double x=0,y=0; void settype1 (double conv1) { x = conv1; } void settype2 (double conv2) { y = conv2; } double conversion ( double amount) { double converted = (amount*

你看到这个代码有什么错误吗?在thosen不工作的情况下,它返回一个NaN

public class Method2 extends GUIct1
{
double x=0,y=0;


void settype1 (double conv1)
{
x = conv1;
}

void settype2 (double conv2)
{
y = conv2;
}

double conversion ( double amount)
{


double converted = (amount*y)/x;
    return converted;
}

}
它的使用方式,我已经改变了设置部分

Method2 convert = new Method2(); \\ method is called


好吧,事实上,你已经有了一些方法来设置变量,叫做get something,这显然不是一个好主意,而且没有缩进。。。但它应该起作用。但是,你还没有展示你是如何使用它的。也许你实际上没有被称为setter方法

以下是相同代码但名称不同的示例,以及使用该代码的示例:

class Converter
{
    double multiplier = 0;
    double divisor = 0;


    void setMultiplier(double multiplier)
    {
        this.multiplier = multiplier;
    }

    void setDivisor(double divisor)
    {
        this.divisor = divisor;
    }

    double convert(double amount)
    {
        return (amount * multiplier) / divisor;
    }
}

public class Test
{
    public static void main(String[] args)
    {
        Converter converter = new Converter();
        converter.setMultiplier(3.5);
        converter.setDivisor(8.5);
        System.out.println(converter.convert(2)); // Prints 0.8235294117647058
    }
}

就我个人而言,我可能会将变量设置为final并在构造函数中设置它们,但这是另一回事…

看起来您从未调用过gettype1或gettype2,因此x/y为0/0,导致NaN

当x=0时会发生这种情况。未定义零除。在开始计算之前,请打印出x和y,以查看它们是否不为零。

get方法应命名为set。代码段不完整。请更新它。您正在用0在一个除以x的类中初始化x-您期望发生什么?这就像把燃料和火柴留在树林里,希望没有人一起使用;关于哪个函数?转换?如果你不把x设为零以外的值,你会得到一个被零除的错误。我们也没有看到任何调用转换的代码,所以我们不能真正知道发生了什么…我试过了,直到那时一切都正常
convert.settype2(k);
double x = convert.conversion(i);
System.out.println(x);
class Converter
{
    double multiplier = 0;
    double divisor = 0;


    void setMultiplier(double multiplier)
    {
        this.multiplier = multiplier;
    }

    void setDivisor(double divisor)
    {
        this.divisor = divisor;
    }

    double convert(double amount)
    {
        return (amount * multiplier) / divisor;
    }
}

public class Test
{
    public static void main(String[] args)
    {
        Converter converter = new Converter();
        converter.setMultiplier(3.5);
        converter.setDivisor(8.5);
        System.out.println(converter.convert(2)); // Prints 0.8235294117647058
    }
}