Java: Арифметика - PullRequest
       0

Java: Арифметика

0 голосов
/ 08 марта 2011

Видите ли вы что-то не так в этом коде?если он не работает должным образом, он возвращает 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

.....

convert.settype1(j);

.....

convert.settype2(k);

.....

double x = convert.conversion(i);
System.out.println(x);

Ответы [ 3 ]

7 голосов
/ 08 марта 2011

Ну, тот факт, что у вас есть методы, которые устанавливают переменные с именем get - что-то, очевидно, не очень хорошая идея, и нет отступов ... но это должно работать . Но тогда вы еще не показали, как вы это используете. Возможно, вы на самом деле не называете методы 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
    }
}

Лично я, вероятно, сделал бы переменные окончательными и установил бы их в конструкторе, но это другой вопрос ...

1 голос
/ 08 марта 2011

Не похоже, что вы когда-либо вызывали gettype1 или gettype2, поэтому x / y равно 0/0, что приводит к NaN

0 голосов
/ 08 марта 2011

Это может произойти, когда х = 0.Деление на ноль не определено.Распечатайте x и y до того, как вы начнете вычислять, чтобы увидеть, не являются ли они нулем.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...