四舍五入到最接近的5的倍数

时间:2018-04-22 22:14:36

标签: javascript

我正在尝试编写一个四舍五入到最接近的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
}
}

2 个答案:

答案 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,则将其添加到成绩中,否则按原样返回成绩。

&#13;
&#13;
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;
&#13;
&#13;

相关问题