Умножение пользовательских единиц - PullRequest
0 голосов
/ 01 ноября 2018

Для того, что я делаю, я создаю программу для умножения и деления измерений. В настоящее время я застрял на умножении. Я создал класс с именем Measurement, который принимает значение и единицу измерения, поэтому типичный конструктор:

Измерение x = новое измерение (5, "в ^ 2");

В настоящее время мой вывод:

Mult: 5,0 дюйма * 3,0 дюйма = 15,0 дюйма ^ 2

Mult: 5,0 дюйма * 3,0 фунта = 15,0 дюйма * фунта

Mult: 4,0 в ^ 5 * 3,0 в ^ 3 = 12,0 в ^ 5 * в ^ 3

Как видите, первые три выхода хороши, но всякий раз, когда я получаю показатель 4, он не может умножить два показателя. Я также не могу понять, что умножить что-то вроде:

Mult: 5,0 в ^ 2 / фунт * 3,0 фунта = 15 в ^ 2

Вот как я сейчас его настроил:

public Measurement mult(Measurement measure){
        String newUnit="";
        String inUnit = measure.getUnit();
        double script = 1;
        double newVal = 0;
        newVal = measure.getVal()*val;
        if(inUnit.indexOf(un) > -1){
            if(un.charAt(un.length()-1) == inUnit.charAt(inUnit.length()-1))
                newUnit = un+"^2";
            else{
                if (inUnit.contains("^")){
                    int i = inUnit.indexOf("^")+1;
                    script += Double.parseDouble(String.valueOf(inUnit.charAt(i)));
                }
                if(un.contains("^")){
                    int j = inUnit.indexOf("^")+1;

                    script += Double.parseDouble(String.valueOf(un.charAt(j)));
                }
                else
                    script+=0;
                System.out.println(script);
                newUnit = un+"^"+ Integer.toString((int)script);
            }
        }
       else if(inUnit.indexOf(un) == -1)
            newUnit = un+"*"+inUnit;

        Measurement out = new Measurement(newVal, newUnit);
        return out;

}

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