当我输入整数时,它会显示出我想要的数字。只要我输入一个带小数的数字,它就会减少几个百分点。
double theory = (((testMark*10)+(midMark*5)+(finalMark*2.5))/3);
double practical = (((labMark*10)+(assignMark*5))/2);
double finalAvg = ((practical+theory)/2);
System.out.println("\nTheory: "+df.format(theory)+"%");
System.out.println("\nPractical: "+df.format(practical)+"%");
System.out.println("\nFinal: "+df.format(finalAvg)+"%");
我想一起计算所有的分数,但有些分数是10,20,40等。这就是为什么我乘以100的原因。
谢谢。
编辑:
输入和答案的示例:
输入您的实验室分数,满分为10: 7.5
输入您的测验/测试分数(满分10: 5)
输入你的作业分数,满分为20: 18
输入你的期中考试分数,满分为20: 15
输入您的期末考试分数,满分为40: 32
理论成绩: 74.29%
实用等级: 85%
期末成绩: 77.5%
我的程序输出:
理论: 68.33%
实用性: 82.5%
最终: 75.42%
发布于 2018-10-05 03:48:52
问题是类型的使用不正确。java int/int仍然会给你一个int。在这种情况下,1/2= 0...但是1/ 2.0 = 0.5。这是因为其中一个操作数是双精度数,所以另一个数也是强制转换的,并返回双精度数。
double theory = (((testMark*10)+(midMark*5)+(finalMark*2.5))/3.0);
double practical = (((labMark*10)+(assignMark*5))/2.0);
double finalAvg = ((practical+theory)/2.0);
你确定你使用的公式是正确的吗?该示例是否也使用相同的公式?
如果您插入数字并将其输入计算器(5.0*10.0)+(15.0*5.0)+(32.0*2.5))/3)= 68.33333,这就是您得到的结果。
https://stackoverflow.com/questions/52654080
复制相似问题