我正在尝试编写一个四舍五入到最接近的5的Javascript函数。但是如果变量和综合之间的差值为5的倍数小于3,那么你只会向上舍入。(所以53会向上舍入到55,但52将保持52。)
如果等级<&lt; 38它是一个F.
下面的代码就是我所拥有的,但它运行不正常。我该如何解决?
谢谢!
grade = 71
function roundGrade (grade) {
const remainder = grade % 5
if (grade < 38) {
return "fail"; }
else if (remainder >= 3) {
grade; }
else if (remainder < 3) {
grade-remainder+5
}
}
答案 0 :(得分:3)
如果余数为3
或更高,则只需添加5
并减去余数,可以使用grade += 5 - remainder
来完成。另请注意,您根本不需要第二个else if
条件,因为如果余数大于或等于grade
,您只想修改3
。最后,您需要确保您的函数实际返回 grade
return grade
。
这可以在以下内容中看到:
function roundGrade(grade) {
const remainder = grade % 5;
if (grade < 38) {
return "fail";
} else if (remainder >= 3) {
grade += 5 - remainder;
}
return grade;
}
console.log(roundGrade(71));
console.log(roundGrade(74));
答案 1 :(得分:2)
计算grade / 5
的剩余部分,如果剩余部分小于3
,则将其添加到成绩中,否则按原样返回成绩。
const grade1 = 71
const grade2 = 73
const grade3 = 33
function roundGrade(grade) {
if (grade < 38) return "fail"
const rem = grade % 5;
return rem < 3 ? grade : grade + (5 - rem)
}
console.log(roundGrade(grade1))
console.log(roundGrade(grade2))
console.log(roundGrade(grade3))
&#13;