java - 如何在Java中创建一个带小数的方程?
问题描述
当我输入整数时,它会出现我想要的数字。一旦我输入一个带小数的数字,它就会偏离几个 %。
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%
解决方案
问题是类型的不正确使用。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,这就是您得到的。
推荐阅读
- html - 使用 CSS 创建水平卡片
- react-native - React Nativ iOS APP 正在加载黑屏,而不是我设计的主要 React Native Splash
- anaconda - 康达使用特定日期的最新包
- bash - 如何将剪贴板内容分配给 .sh 脚本文件中的变量?
- javascript - 如何执行所有可能的组合?
- function - 如何在函数中使用 var args(可变参数)?
- .net-core - 如何将现有的 .proto 文件添加为 .net 核心项目的链接
- scala - 如何使 sbt 将非 Java 源包含到已发布的工件中?
- .net - 尝试拦截 POST 请求时出现 415 UnsupportedMediaType
- c - 带链表的多项式和