首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中创建一个带小数的方程式?

如何在Java中创建一个带小数的方程式?
EN

Stack Overflow用户
提问于 2018-10-05 03:44:53
回答 1查看 187关注 0票数 0

当我输入整数时,它会显示出我想要的数字。只要我输入一个带小数的数字,它就会减少几个百分点。

代码语言:javascript
复制
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%

EN

回答 1

Stack Overflow用户

发布于 2018-10-05 03:48:52

问题是类型的使用不正确。java int/int仍然会给你一个int。在这种情况下,1/2= 0...但是1/ 2.0 = 0.5。这是因为其中一个操作数是双精度数,所以另一个数也是强制转换的,并返回双精度数。

代码语言:javascript
复制
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,这就是您得到的结果。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52654080

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档