java - 获取两个变量的百分比

标签 java oop if-statement math while-loop

我尝试过对我的变量使用强制转换,以及我在这里读到的有关获取百分比的其他一些技巧,但代码在这里不起作用。当然,还有更多内容。从选角到展示,我已经尝试了所有方法。

(EDITED AGAIN 2nd time)

这是完整的代码。你是对的,它正在工作,但在这方面,它不是!即使等级变量是 floatint,仍然不起作用。更改了成绩变量,使其不显示小数!。输出(如下)显示等级,但不显示百分比。感谢您的反馈。

输出:

Please enter a grade from 0 - 100! Enter -1 to end the program! 99 
Please enter a grade from 0 - 100! Enter -1 to end the program! -1 
The total number of grades is 2 
Number of A's = 1 which is %0.0 
Number of B's = 0 which is %0.0 
Number of C's = 0 which is %0.0 
Number of D's = 0 which is %0.0 
Number of F's = 0 which is %0.0

代码: 公共(public)类主要{

public static void main(String[] main) {

    Scanner input = new Scanner(System.in) ;

    int totalGrades = 1 ;

    int gradeA = 0 ;
    float gradeAPercentage = (gradeA * 100f) / totalGrades ; 

    int gradeB = 0 ;
    float gradeBPercentage = gradeB / totalGrades ;

    int gradeC = 0 ;
    float gradeCPercentage = gradeC / totalGrades ;

    int gradeD = 0 ;
    float gradeDPercentage = gradeD / totalGrades ;

    int gradeF = 0 ;
    float gradeFPercentage = gradeF / totalGrades ;

    int a = 0 ;

    do{
        System.out.println("Please enter a grade from 0 - 100! Enter -1 to end the program!") ;
        int grade = input.nextInt() ;

        if( (grade == -1) && (totalGrades == 0) ) {
            System.out.println("You entered no grades!") ;
            totalGrades--;
            break ;
        } 
        else if(grade == -1){
            a++ ;
        }
        else if(grade <= 59){
            gradeF++ ;
            totalGrades++ ;
        }
        else if( (grade >= 60) && (grade <= 69) ){
            gradeD++ ;
            totalGrades++ ;
        }
        else if( (grade >= 70) && (grade <= 79) ){
            gradeC++ ;
            totalGrades++ ;
        }
        else if( (grade >= 80) && (grade <= 89) ){
            gradeB++ ;
            totalGrades++ ;
        }
        else if( (grade <= 100) && (grade >= 90) ){
            gradeA++ ;
            totalGrades++ ;
        }
        else{
            System.out.println("Your input is Invalid") ;
            continue ;
        }
    }while(a < 1 ) ;

    System.out.println("The total number of grades is " + totalGrades) ;
    System.out.println("Number of A's = " + gradeA + " which is %" + gradeAPercentage) ;
    System.out.println("Number of B's = " + gradeB + " which is %" + gradeBPercentage) ;
    System.out.println("Number of C's = " + gradeC + " which is %" + gradeCPercentage) ;
    System.out.println("Number of D's = " + gradeD + " which is %" + gradeDPercentage) ;
    System.out.println("Number of F's = " + gradeF + " which is %" + gradeFPercentage) ;
    }
 }

最佳答案

已完成隐式转换,无需额外转换为 float 。您提供的代码工作正常。如果您使用

打印结果
System.out.println(gradeAPercentage);

您将得到您想要计算的结果。

关于java - 获取两个变量的百分比,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49550162/

相关文章:

java - 方法抛出大量异常是正常的吗?

java - 如何从扫描仪中删除分隔符恢复? ( java )

php - PHP中看似多态的东西真的是多态吗?

javascript if 复选框的条件仅运行一次

java - 如何将文本字段(JFrame 1)的输入值传递给标签(JFrame 2)

Java Jsoup无法选择表

PHP函数列出所有对象的属性和方法

PHP OOP核心框架

c - 获取序列的递归函数无法正常工作

javascript - 对条件 Array.sort() 的 Jest 覆盖