2014-03-25 5 views
0

html에서 반올림 한 숫자에 약간 문제가 있습니다.javascript와 jquery를 사용하여 HTML에서 가져온 그림 반올림

예를 들어 <input id="salesValue"> using var salesValue = $("salesValue").val()에서 추출한 값은 텍스트 값을 제공합니다.

그래서 var doubleSalesValue = salesValue + salesValue;과 같은 작업을 수행하면 두 값의 합계가 아닌 연결로 숫자가 반환됩니다.

var doubleSalesValue = salesValue * 2.0;을 사용하면 소수점 이하의 값을 반환합니다. 그러나 다른 방법을 사용하기를 원한다면 어떻게 그 상황에 접근 할 수 있습니까?

어떤 방법을 사용합니까? 나는 번호로 유형 변환과 함께 소수점 이하 자릿수를 제한 할 나는 각 번호에서 실행하는 함수를 만들었습니다

function round(number, figure){ 
    return Number(Number(number).toFixed(figure)); 
} 

나는 값이 변환되어 있는지 확인하기 위해 처음에 번호를 실행해야 메소드 번호가 toFixed 인 경우에는 여기에 오류가 발생합니다. 그런 다음 함수에서 요구하는 소수 자릿수로 다시 숫자를 반올림해야하며 toFixed 메서드를 실행 한 후에 숫자가 문자열로 바뀌는 경우가 있습니다.

그래서, 나는 Number 기능 Number(number).toFixed(figure)

다른 것 또는 당신이 따라 어떤 다른 패러다임이 거기를 실행하기로 결정?

편집 : 여기에서 내가하고있는 일이 재래식인지 또는 일반적으로 더 나은 방법이 있는지 알고 싶습니다. 당신이이 개 소수로 반올림하려면

답변

1

당신은 간단하게이 작업을 수행 할 수 있습니다

var roundedNum = Math.round(parseFloat(originalNum) * 100)/100;

를 귀하의 질문에 대해서는 :

어떻게 든 개수에서는 toFixed 방법을 것입니다 실행 한 후 때로는 문자열로 변합니다.

반환이

숫자의 문자열 표현 지수 표기법을 사용하지 않는 정확히 자리 숫자가 있습니다

은 내가 DOX에게 말한다 조금 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toFixed 더 읽어 다음을 제안 소수점 이하 자릿수 필요한 경우 숫자는 반올림되며, 소수 부분에는 필요한 길이가 으로 채워져 지정된 길이가됩니다. number가 이 1e + 21보다 큰 경우이 메서드는 Number.prototype.toString()을 호출하고 지수가 표기법으로 된 문자열을 반환합니다.

관련 문제