【问题标题】:Trouble calculating percentage无法计算百分比
【发布时间】:2014-03-18 01:53:21
【问题描述】:

我输入了选举代码,但我无法获得候选人的选票百分比。 这是我的代码:

import java.util.Scanner;

public class Voting

{
  public static void main (String [] args)
   {
    int candidate1;
    int candidate2;
    int Toronto1;
    int Toronto2;
    int Mississauga1;
    int Mississauga2;
    int Brampton1;
    int Brampton2;
    int total_votes1;
    int total_votes2;
    int totalall;
    double percentage1;
    double percentage2;

    Scanner input = new Scanner (System.in);


    System.out.print("Votes for Candidate 1 from Toronto");
    Toronto1=input.nextInt();
    System.out.print("Votes for Candidate 2 from Toronto");
    Toronto2=input.nextInt();
    System.out.print("Votes for Candidate 1 from Mississauga");
    Mississauga1=input.nextInt();
    System.out.print("Votes for Candidate 2 from Mississauga");
    Mississauga2=input.nextInt();
    System.out.print("Votes for Candidate 1 from Brampton");
    Brampton1=input.nextInt();
    System.out.print("Votes for Candidate 2 from Brampton");
    Brampton2=input.nextInt();

    total_votes1=Toronto1+Mississauga1+Brampton1;
    total_votes2=Toronto2+Mississauga2+Brampton2;
    totalall=total_votes1+total_votes2;
    percentage1=(Toronto1+Mississauga1+Brampton1)/(total_votes1+total_votes2);
    percentage2=(Toronto2+Mississauga2+Brampton2)/(total_votes1+total_votes2);

    System.out.println("Election Results for Toronto:");
    System.out.println("Candidate 1 = " +Toronto1+ "");
    System.out.println("Candidate 2 = " +Toronto2+ "\n");

    System.out.println("Election Results for Mississauga:");
    System.out.println("Candidate 1 = " +Mississauga1+ "");
    System.out.println("Candidate 2 = " +Mississauga2+ "\n");

    System.out.println("Election Results for Brampton:");
    System.out.println("Candidate 1 = " +Brampton1+ "");
    System.out.println("Candidate 2 = " +Brampton2+ "\n");


    System.out.println("Candidate        Vote             Percentage\n");
    System.out.println("Candidate1         "  +total_votes1+ "                   "+percentage1+"%");
    System.out.println("Candidate2         "  +total_votes2+ "                   "+percentage2+"%");
    System.out.println("Total Votes        "  +totalall+"");

  }
}

这就是答案:

多伦多投票给候选人 1 [5] 投票给多伦多的候选人 2 [5] 来自密西沙加的候选人 1 投票 [5] 来自密西沙加的候选人 2 投票 [5] 从布兰普顿投票给候选人 1 [5] 布兰普顿为候选人 2 投票 [5] 多伦多选举结果: 候选人 1 = 5 候选人 2 = 5 密西沙加的选举结果: 候选人 1 = 5 候选人 2 = 5 布兰普顿的选举结果: 候选人 1 = 5 候选人 2 = 5 候选人投票百分比 候选人1 15 0.0% 候选人2 15 0.0% 总票数 30

如您所见,它显示的是 0.0% 而不是 50%。

【问题讨论】:

标签: java


【解决方案1】:

看起来你正在做 int 除法。一个 int 除以一个 int 得到一个 int!

所以 20/40 将 == 0,因为 20

(double) 20 / 40

或者对于百分比,至少先乘以 100。

即改变

percentage1=(Toronto1+Mississauga1+Brampton1)/(total_votes1+total_votes2);

percentage1=(100 * (Toronto1+Mississauga1+Brampton1))/(total_votes1+total_votes2);

【讨论】:

  • @JasonC:不,如果它在括号内,它将允许 int 除法返回非零小数。我会保持现状。
  • 谢谢,这很有帮助。
猜你喜欢
  • 2011-06-01
  • 2021-01-10
  • 1970-01-01
  • 2015-10-11
  • 2015-09-04
  • 2013-03-22
  • 2020-10-11
  • 1970-01-01
相关资源
最近更新 更多