android 计算器中的错误,它会找到您通过课程所需的分数[已关闭]

gopyfrb3  于 2022-12-16  发布在  Android
关注(0)|答案(1)|浏览(123)

已关闭。此问题需要超过focused。当前不接受答案。
**想要改进此问题吗?**更新此问题,使其仅关注editing this post的一个问题。

3小时前关门了。
这篇文章是编辑和提交审查3小时前。
Improve this question
我正在做一个项目,输入你的当前成绩、成绩目标和期末权重,你会得到你需要在期末考试中得到的分数。我对正确的数学计算出你需要在期末考试中得到什么才能得到你想要的分数有疑问。

`var goal by remember { mutableStateOf( "") }
 var currentGrade by remember { mutableStateOf( "") }
 var finalWeight by remember { mutableStateOf( "") }
 var finalGradeNeeded by remember { mutableStateOf("") }

 if (goal.isNotEmpty() && currentGrade.isNotEmpty() && finalWeight.isNotEmpty()) {
    if (finalWeight.toInt() == 0) {
        finalGradeNeeded = "Error: Cannot divide by zero"
    } else {
        finalGradeNeeded = ((goal.toDouble() - ((100 - finalWeight.toDouble()) *  (currentGrade.toDouble() / (finalWeight.toDouble() / 100))))).toString()
    }
}

Text(
    text = "Your final grade needs to be: $finalGradeNeeded%",
    fontWeight = FontWeight.Bold,
    f`ontSize = 15.sp
)

当我输入当前分数为50,班级目标为50,最终权重为50时,我期望它是50,但输出是-4950.0%。

yeotifhr

yeotifhr1#

简单加权放坡的工作方式如下:

(currentWeight * currentGrade) + (finalWeight * finalGrade) = weightedGrade

圆括号在那里只是为了更容易地看到独立的组成部分,你实际上不需要它们。
所以我们需要在方程的左边得到finalGrade变量,在方程的右边得到其他变量;
x一个一个一个一个x一个一个二个x
此外,与代码中的操作一样,假设权重采用十进制表示法,则本例中的currentWeight等于1 - finalWeight,因此finalGrade的最终公式为:

finalGrade = (weightedGrade - (1 - finalWeight) * currentGrade) / finalWeight

从这里开始,您应该能够在代码中实现这个公式。
还有一种边缘情况,即达到所需weightedGrade所需的finalGrade大于100,在这种情况下,您可能需要警告用户。

相关问题