가장 가까운 5의 배수 대신 5 의 다음 배수로 반올림하는 정수 값 (길이 2에서 5 자리 범위)을받는 유틸리티 함수가 필요합니다 . 다음은 내가 얻은 것입니다.
function round5(x)
{
return (x % 5) >= 2.5 ? parseInt(x / 5) * 5 + 5 : parseInt(x / 5) * 5;
}
내가 실행하면 round5(32)
, 그것은 나를 준다 30
내가 35 원하는 곳,
내가 실행하면 round5(37)
, 그것은 나를 준다 35
내가 40 원하는 곳.
내가 실행하면 round5(132)
, 그것은 나를 준다 130
내가 135 원하는 곳,
내가 실행하면 round5(137)
, 그것은 나를 준다 135
내가 140 원하는 곳.
기타…
어떻게해야합니까?
답변
이것은 작업을 수행합니다.
function round5(x)
{
return Math.ceil(x/5)*5;
}
이것은 함수의 number
가장 가까운 배수 에 대한 일반적인 반올림의 변형 일 뿐이지 만, 대신 사용 하면 수학적 규칙에 따라 항상 아래 / 위 대신 반올림됩니다.x
Math.round(number/x)*x
.ceil
.round
답변
const roundToNearest5 = x => Math.round(x/5)*5
이것은 숫자를 가장 가까운 5로 반올림합니다. 항상 가장 가까운 5로 반올림하려면을 사용하십시오 Math.ceil
. 마찬가지로 항상 반올림하려면 Math.floor
대신을 사용하십시오 Math.round
. 그런 다음 다른 것과 마찬가지로이 함수를 호출 할 수 있습니다. 예를 들면
roundToNearest5(21)
반환됩니다 :
20
답변
이렇게?
function roundup5(x) { return (x%5)?x-x%5+5:x }
답변
나는 비슷한 것을 찾고있는 동안 여기에 도착했다. 내 번호가 –0, –1, –2이면 –0까지 내려 가야하고 –3, –4, –5이면 –5까지 올라갑니다.
이 솔루션을 생각해 냈습니다.
function round(x) { return x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5 }
그리고 테스트 :
for (var x=40; x<51; x++) {
console.log(x+"=>", x%5<3 ? (x%5===0 ? x : Math.floor(x/5)*5) : Math.ceil(x/5)*5)
}
// 40 => 40
// 41 => 40
// 42 => 40
// 43 => 45
// 44 => 45
// 45 => 45
// 46 => 45
// 47 => 45
// 48 => 50
// 49 => 50
// 50 => 50
답변
voici 2 solutions possibles :
y= (x % 10==0) ? x : x-x%5 +5; //......... 15 => 20 ; 37 => 40 ; 41 => 45 ; 20 => 20 ;
z= (x % 5==0) ? x : x-x%5 +5; //......... 15 => 15 ; 37 => 40 ; 41 => 45 ; 20 => 20 ;
폴 감사합니다
답변
// 정밀도로 반올림
var round = function (value, precision) {
return Math.round(value * Math.pow(10, precision)) / Math.pow(10, precision);
};
// 정밀도로 5로 반올림
var round5 = (value, precision) => {
return round(value * 2, precision) / 2;
}
답변
const fn = _num =>{
return Math.round(_num)+ (5 -(Math.round(_num)%5))
}
round를 사용하는 이유는 예상 입력이 난수 일 수 있기 때문입니다.
감사!!!