2016-06-07 192 views
3

我似乎无法让我的百分比正确显示。每次循环时总是显示0.0。代码中的其他一切似乎都起作用。无法正确显示百分比

我可能错过了一些明显的东西,但是当谈到Java的时候,我有些不知所措,因此非常感谢大家的帮助。

package e2E3; 
import java.util.Scanner; 

public class Main { 

    public static void calculatePercentage(int studentMark, int maxMark){ 
     double percentage; 
     percentage = studentMark/maxMark * 100; 
     System.out.println("%" + percentage); 

    } 

    public static void totalAndAverageMark(){ 

      Scanner userInput = new Scanner(System.in); 
      int numberOfStudents = 0; 
      int maxMark = 0; 
      int totalMark = 0; 
      int studentCount = 0; 
      int studentMark = 0; 
      int average = 0; 

      System.out.println("how many Students Sat the Test?"); 
      numberOfStudents = userInput.nextInt(); 

      System.out.println("what is the Maximum score?"); 
      maxMark = userInput.nextInt(); 

      do { 

       System.out.println("enter students score.."); 
       studentMark = userInput.nextInt(); 

       calculatePercentage(studentMark, maxMark); 

       totalMark = totalMark + studentMark; 

       studentCount = studentCount + 1; 

      } while (studentCount != numberOfStudents); 

      average = totalMark/numberOfStudents; 
      System.out.println("The Average Grade of Students was.. " + average); 

    } 

    public static void main(String[] args) { 

     totalAndAverageMark(); 

    } 

} 

回答

2

您正在分割整数,因此结果总是一个整数值。您可以将studentMark声明为double,并且可以按预期工作。如果你不想要这个,你可以在分区中将它投入两倍(double) studentMark/maxMark * 100;