Как рассчитать процент прироста в Java?Что такое - PullRequest
0 голосов
/ 27 февраля 2019

Я получил неправильный вывод при выполнении этого кода *****

package gain_per;
import java.util.Scanner;

public class Gain {

    public static void main(String[] args) {

        Scanner sn = new Scanner(System.in);
        int op,rc,sp,cost,gain;
        double gp=0;

        System.out.println("Enter Old Price:");
        op = sn.nextInt();

        System.out.println("Enter Repair cost:");
        rc = sn.nextInt();

        System.out.println("Enter Selling Price:");
        sp = sn.nextInt();

        if(op != 0 && rc != 0 && sp != 0) {

            cost = op+rc;

            if(cost<sp) {

                gain = sp-cost;
                gp = (float)((gain / cost) * 100);

                System.out.println(gp);

            }
            else {

                System.out.println("Cannot Calculate");
            }

        }
        else {

            System.out.println("Invalid Input");
        }

    }

}

Это мой код !!!Что не так с этим?Выходное значение, которое я получаю, составляет 0,0

.

Ответы [ 2 ]

0 голосов
/ 27 февраля 2019

Это потому, что вы делаете деления на int, что даст zero.Итак, что вам нужно сделать, это разыграть gain и cost для первого плавания, а затем умножить его на 100. Например: gp = (((float) gain / (float) cost) * 100);

полный код:

package gain_per;
import java.util.Scanner;

public class Gain {

public static void main(String[] args) {

    Scanner sn = new Scanner(System.in);
    int op,rc,sp,cost,gain;
    double gp=0;

    System.out.println("Enter Old Price:");
    op = sn.nextInt();

    System.out.println("Enter Repair cost:");
    rc = sn.nextInt();

    System.out.println("Enter Selling Price:");
    sp = sn.nextInt();

    if(op != 0 && rc != 0 && sp != 0) {

        cost = op+rc;

        if(cost<sp) {

            gain = sp-cost;
            gp = (((float) gain / (float) cost) * 100);

            System.out.println(gp);

        }
        else {

            System.out.println("Cannot Calculate");
        }

    }
    else {

        System.out.println("Invalid Input");
    }

}

}
0 голосов
/ 27 февраля 2019

это потому, что прирост равен int, стоимость также равна int, выгода / стоимость будет возвращаться как int, а если выгода меньше стоимости, тогда выгода / стоимость = 0. Вам необходимо разыграть такие как: ((float) gain) / cost, чтобызаставить выражение стать float / int, которое будет возвращать float

...