[javascript] 0.5에 가장 가까운 자바 스크립트 반올림 숫자

누군가 나에게 가장 가까운 0.5로 반올림 할 수있는 방법을 알려줄 수 있습니까?
화면 해상도에 따라 웹 페이지의 요소 크기를 조정해야하며이를 위해 1, 1.5 또는 2 이상 등의 pt 단위로만 글꼴 크기를 할당 할 수 있습니다.

반올림하면 소수점 이하 1 자리로 반올림되거나 없음으로 반올림됩니다. 이 일을 어떻게 수행 할 수 있습니까?



답변

2를 곱하고 반올림 한 다음 2로 나누는 함수를 작성하십시오.

function roundHalf(num) {
    return Math.round(num*2)/2;
}


답변

다음은 유용 할 수있는보다 일반적인 솔루션입니다.

function round(value, step) {
    step || (step = 1.0);
    var inv = 1.0 / step;
    return Math.round(value * inv) / inv;
}

round(2.74, 0.1) = 2.7

round(2.74, 0.25) = 2.75

round(2.74, 0.5) = 2.5

round(2.74, 1.0) = 3.0


답변

Math.round(-0.5)0을 반환 하지만 수학 규칙에 따라 -1 이어야합니다 .

추가 정보 : Math.round ()
Number.prototype.toFixed ()

function round(number) {
    var value = (number * 2).toFixed() / 2;
    return value;
}


답변

0.5 이상으로 반올림하기 위해 newtron의 최상위 답변을 확장하려면

function roundByNum(num, rounder) {
    var multiplier = 1/(rounder||0.5);
    return Math.round(num*multiplier)/multiplier;
}

console.log(roundByNum(74.67)); //expected output 74.5
console.log(roundByNum(74.67, 0.25)); //expected output 74.75
console.log(roundByNum(74.67, 4)); //expected output 76


답변

    function roundToTheHalfDollar(inputValue){
      var percentile = Math.round((Math.round(inputValue*Math.pow(10,2))/Math.pow(10,2)-parseFloat(Math.trunc(inputValue)))*100)
      var outputValue = (0.5 * (percentile >= 25 ? 1 : 0)) + (0.5 * (percentile >= 75 ? 1 : 0))
      return Math.trunc(inputValue) + outputValue
    }

나는 Tunaki의 더 나은 응답을보기 전에 이것을 썼다;)


답변

var f = 2.6;
var v = Math.floor(f) + ( Math.round( (f - Math.floor(f)) ) ? 0.5 : 0.0 );


답변