导致百分比错误的数学问题
Math issue causing errors with percentages
我正在创建一个应用程序来计算 class 分数,然后根据分数输出字母等级。
总而言之,我不是最擅长数学的,我无法确定我的数学错误在代码中的位置,控制台因此拆分出过多的百分比值。
这是控制台输出的内容:
My quiz percentage is 83.33333
my lab percentage is 72.916664
My Mid-Term percentage is 196.72131
my End-Term Percentage is 200.72131
My final percentage grade is 115.35263
Calculation error: possible percentage values between 1%-100%. Check your math and try again.
(最后一行只是一个if语句,表明存在计算错误。正确完成后,它应该输出其他if语句处理的字母等级。)
下面是我的代码:
//Quiz scores
float q1=20, q2=19, q3=14, q4=17, actualQuizPoints=70, actualPoints=80, totalMidTermPoints=120, actualMidTermPoints=61;
//Lab scores
float l1=20, l2=19, l3=14, l4=17;
void setup() {
noLoop();
size(100,100);
}
void draw() {
float totalQuizPoints=Addition(q1, q2, q3, q4);
float quizPercentage = Percentage(totalQuizPoints, actualQuizPoints);
float totalLabPoints =Addition(l1, l2, l3, l4);
float labPercentage=Percentage(totalLabPoints, actualPoints);
float midTermPercentage=Percentage(totalMidTermPoints, actualMidTermPoints);
float endTermPercentage=midTermPercentage+4;
float finalPercentage=Addition(quizPercentage, labPercentage, midTermPercentage, endTermPercentage)/4;
println("My quiz percentage is " + quizPercentage);
println("my lab percentage is " + labPercentage);
println("My Mid-Term percentage is " + midTermPercentage);
println("my End-Term Percentage is " + endTermPercentage);
println("My final percentage grade is " + finalPercentage);
if (finalPercentage <60) {
println ("My final letter grade is F.");
}
if (finalPercentage >=60 & finalPercentage <70) {
println ("My final letter grade is D.");
}
if (finalPercentage >=70 & finalPercentage <80) {
println ("My final letter grade is C.");
}
if (finalPercentage >=80 & finalPercentage <90) {
println ("My final letter grade is B.");
}
if (finalPercentage >=90 & finalPercentage <=100) {
println ("My final letter grade is A.");
}
if (finalPercentage >100) {
println ("Calculation error: possible percentage values between 1%-100%. Check your math and try again.");
}
}
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4)/120*100;
return total;
}
float Percentage(float totalpoints, float actualpoints) {
float percentageIs=(totalpoints/actualpoints)*100;
return percentageIs;
}
您使用术语 total
和 actual
的方式不一致。
对于测验分数和实验分数,您使用 total
表示所有获得分数的总和,使用 actual
表示本可以获得的分数。
对于期中、期末和期末的分数,你可以调换它们。
您需要修改代码,以便与传递给 percentage()
函数的参数保持一致。
不要太在意别人的看法,我只是想尝试回答一下。没有理解你所有的代码。但是我已经在底部发布了我的 "findings" 的整个代码。
我的评论是可选的
至少底部的代码给出了 0-100% 的实际百分比,如果你编译:)
结果:
My quiz percentage is 87.5
my lab percentage is 87.5
My Mid-Term percentage is 50.833332
my End-Term Percentage is 54.833332
My final percentage grade is 70.166664
My final letter grade is C.
不太确定这段代码是什么:
void setup() {
noLoop();
size(100,100);
}
我主要是把你的加法改成了实际加4个数:
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4);
return total;
}
而且我想我改变了一些参数 f。实例:
float quizPercentage = Percentage(totalQuizPoints, actualQuizPoints);
实际积分。否则它会计算 70 / 70 *100。即 100
我还互相调换了参数:
float midTermPercentage=Percentage(totalMidTermPoints, actualMidTermPoints);
我不太确定这是什么意思,但我把它留下了:
float endTermPercentage=midTermPercentage+4;
完整代码:
class Grading{
//Quiz scores
float q1=20, q2=19, q3=14, q4=17, actualQuizPoints=70, actualPoints=80, totalMidTermPoints=120, actualMidTermPoints=61;
//Lab scores
float l1=20, l2=19, l3=14, l4=17;
public static void main(String[] args){
Grading g=new Grading();
g.draw();
}
void draw() {
float totalQuizPoints=Addition(q1, q2, q3, q4);
float quizPercentage = Percentage(totalQuizPoints, actualPoints);
float totalLabPoints =Addition(l1, l2, l3, l4);
float labPercentage=Percentage(totalLabPoints, actualPoints);
float midTermPercentage=Percentage(actualMidTermPoints, totalMidTermPoints);
float endTermPercentage=midTermPercentage+4;
float finalPercentage=Addition(quizPercentage, labPercentage, midTermPercentage, endTermPercentage)/4;
System.out.println("My quiz percentage is " + quizPercentage);
System.out.println("my lab percentage is " + labPercentage);
System.out.println("My Mid-Term percentage is " + midTermPercentage);
System.out.println("my End-Term Percentage is " + endTermPercentage);
System.out.println("My final percentage grade is " + finalPercentage);
if (finalPercentage <60) {
System.out.println ("My final letter grade is F.");
}
if (finalPercentage >=60 & finalPercentage <70) {
System.out.println ("My final letter grade is D.");
}
if (finalPercentage >=70 & finalPercentage <80) {
System.out.println ("My final letter grade is C.");
}
if (finalPercentage >=80 & finalPercentage <90) {
System.out.println ("My final letter grade is B.");
}
if (finalPercentage >=90 & finalPercentage <=100) {
System.out.println ("My final letter grade is A.");
}
if (finalPercentage >100) {
System.out.println ("Calculation error: possible percentage values between 1%-100%. Check your math and try again.");
}
}
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4);
return total;
}
float Percentage(float totalpoints, float actualpoints) {
float percentageIs=(totalpoints/actualpoints)*100;
return percentageIs;
}
}
我正在创建一个应用程序来计算 class 分数,然后根据分数输出字母等级。
总而言之,我不是最擅长数学的,我无法确定我的数学错误在代码中的位置,控制台因此拆分出过多的百分比值。
这是控制台输出的内容:
My quiz percentage is 83.33333
my lab percentage is 72.916664
My Mid-Term percentage is 196.72131
my End-Term Percentage is 200.72131
My final percentage grade is 115.35263
Calculation error: possible percentage values between 1%-100%. Check your math and try again.
(最后一行只是一个if语句,表明存在计算错误。正确完成后,它应该输出其他if语句处理的字母等级。)
下面是我的代码:
//Quiz scores
float q1=20, q2=19, q3=14, q4=17, actualQuizPoints=70, actualPoints=80, totalMidTermPoints=120, actualMidTermPoints=61;
//Lab scores
float l1=20, l2=19, l3=14, l4=17;
void setup() {
noLoop();
size(100,100);
}
void draw() {
float totalQuizPoints=Addition(q1, q2, q3, q4);
float quizPercentage = Percentage(totalQuizPoints, actualQuizPoints);
float totalLabPoints =Addition(l1, l2, l3, l4);
float labPercentage=Percentage(totalLabPoints, actualPoints);
float midTermPercentage=Percentage(totalMidTermPoints, actualMidTermPoints);
float endTermPercentage=midTermPercentage+4;
float finalPercentage=Addition(quizPercentage, labPercentage, midTermPercentage, endTermPercentage)/4;
println("My quiz percentage is " + quizPercentage);
println("my lab percentage is " + labPercentage);
println("My Mid-Term percentage is " + midTermPercentage);
println("my End-Term Percentage is " + endTermPercentage);
println("My final percentage grade is " + finalPercentage);
if (finalPercentage <60) {
println ("My final letter grade is F.");
}
if (finalPercentage >=60 & finalPercentage <70) {
println ("My final letter grade is D.");
}
if (finalPercentage >=70 & finalPercentage <80) {
println ("My final letter grade is C.");
}
if (finalPercentage >=80 & finalPercentage <90) {
println ("My final letter grade is B.");
}
if (finalPercentage >=90 & finalPercentage <=100) {
println ("My final letter grade is A.");
}
if (finalPercentage >100) {
println ("Calculation error: possible percentage values between 1%-100%. Check your math and try again.");
}
}
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4)/120*100;
return total;
}
float Percentage(float totalpoints, float actualpoints) {
float percentageIs=(totalpoints/actualpoints)*100;
return percentageIs;
}
您使用术语 total
和 actual
的方式不一致。
对于测验分数和实验分数,您使用 total
表示所有获得分数的总和,使用 actual
表示本可以获得的分数。
对于期中、期末和期末的分数,你可以调换它们。
您需要修改代码,以便与传递给 percentage()
函数的参数保持一致。
不要太在意别人的看法,我只是想尝试回答一下。没有理解你所有的代码。但是我已经在底部发布了我的 "findings" 的整个代码。
我的评论是可选的
至少底部的代码给出了 0-100% 的实际百分比,如果你编译:)
结果:
My quiz percentage is 87.5
my lab percentage is 87.5
My Mid-Term percentage is 50.833332
my End-Term Percentage is 54.833332
My final percentage grade is 70.166664
My final letter grade is C.
不太确定这段代码是什么:
void setup() {
noLoop();
size(100,100);
}
我主要是把你的加法改成了实际加4个数:
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4);
return total;
}
而且我想我改变了一些参数 f。实例:
float quizPercentage = Percentage(totalQuizPoints, actualQuizPoints);
实际积分。否则它会计算 70 / 70 *100。即 100
我还互相调换了参数:
float midTermPercentage=Percentage(totalMidTermPoints, actualMidTermPoints);
我不太确定这是什么意思,但我把它留下了:
float endTermPercentage=midTermPercentage+4;
完整代码:
class Grading{
//Quiz scores
float q1=20, q2=19, q3=14, q4=17, actualQuizPoints=70, actualPoints=80, totalMidTermPoints=120, actualMidTermPoints=61;
//Lab scores
float l1=20, l2=19, l3=14, l4=17;
public static void main(String[] args){
Grading g=new Grading();
g.draw();
}
void draw() {
float totalQuizPoints=Addition(q1, q2, q3, q4);
float quizPercentage = Percentage(totalQuizPoints, actualPoints);
float totalLabPoints =Addition(l1, l2, l3, l4);
float labPercentage=Percentage(totalLabPoints, actualPoints);
float midTermPercentage=Percentage(actualMidTermPoints, totalMidTermPoints);
float endTermPercentage=midTermPercentage+4;
float finalPercentage=Addition(quizPercentage, labPercentage, midTermPercentage, endTermPercentage)/4;
System.out.println("My quiz percentage is " + quizPercentage);
System.out.println("my lab percentage is " + labPercentage);
System.out.println("My Mid-Term percentage is " + midTermPercentage);
System.out.println("my End-Term Percentage is " + endTermPercentage);
System.out.println("My final percentage grade is " + finalPercentage);
if (finalPercentage <60) {
System.out.println ("My final letter grade is F.");
}
if (finalPercentage >=60 & finalPercentage <70) {
System.out.println ("My final letter grade is D.");
}
if (finalPercentage >=70 & finalPercentage <80) {
System.out.println ("My final letter grade is C.");
}
if (finalPercentage >=80 & finalPercentage <90) {
System.out.println ("My final letter grade is B.");
}
if (finalPercentage >=90 & finalPercentage <=100) {
System.out.println ("My final letter grade is A.");
}
if (finalPercentage >100) {
System.out.println ("Calculation error: possible percentage values between 1%-100%. Check your math and try again.");
}
}
float Addition(Float n1, float n2, float n3, float n4) {
float total=(n1+n2+n3+n4);
return total;
}
float Percentage(float totalpoints, float actualpoints) {
float percentageIs=(totalpoints/actualpoints)*100;
return percentageIs;
}
}