jQuery 1.7.2 및 jQuery UI 1.9.1을 사용하고 있습니다. 슬라이더 내에서 아래 코드를 사용하고 있습니다. (http://jqueryui.com/slider/)
두 값을 테스트하고 두 값의 차이에 따라 적절한 소수점 자리로 다시 형식화하는 함수가 있습니다. 차이가 10보다 크면 정수를 구문 분석합니다. 차이가 5보다 크면 소수점 하나를 유지해야합니다. 그 밖의 모든 것은 소수점 두 자리를 유지합니다.
차이가 10 이하인 두 값을 입력 할 때 toFixed () 함수를 사용합니다. 그리고 Firebug에서 오류가 표시됩니다.
TypeError: Low.toFixed is not a function
Low = Low.toFixed(2);
내가 잘못하고있는 간단한 것이 있습니까?
내 코드는 다음과 같습니다.
var Low = $SliderValFrom.val(),
High = $SliderValTo.val();
// THE NUMBER IS VALID
if (isNaN(Low) == false && isNaN(High) == false) {
Diff = High - Low;
if (Diff > 10) {
Low = parseInt(Low);
High = parseInt(High);
} else if (Diff > 5) {
Low = Low.toFixed(1);
High = High.toFixed(1);
} else {
Low = Low.toFixed(2);
High = High.toFixed(2);
}
}
답변
toFixed
숫자가 아닌 변수 유형의 방법이 아닙니다. 즉, Low
그리고 High
당신이 자바 스크립트에서 뭔가의 가치를 얻을 때, 그것은 자동으로 문자열 유형으로 설정되어 있기 때문에 고정 할 수 없습니다. 사용 parseFloat()
(또는 parseInt()
정수인 경우 기수 사용 )을 사용하면 다양한 변수 유형을 숫자로 변환하여 toFixed()
함수가 작동 할 수 있습니다.
var Low = parseFloat($SliderValFrom.val()),
High = parseFloat($SliderValTo.val());
답변
그것은 Low
문자열 이기 때문 입니다.
.toFixed()
숫자로만 작동합니다.
시도해보십시오.
Low = parseFloat(Low).toFixed(..);
답변
Low
문자열입니다.
.toFixed()
숫자로만 작동합니다.
이러한 문제를 극복하는 간단한 방법은 유형 강제 를 사용하는 것입니다 .
Low = (Low*1).toFixed(..);
1을 곱하면 코드가 문자열을 숫자로 변환하고 값을 변경하지 않습니다. 여기에 JSFiddle 코드가 있습니다 .
답변
숫자 유형으로 변환해야합니다.
(+Low).toFixed(2)
답변
함수에서 다음과 같이 사용하십시오.
render: function (args) {
if (args.value != 0)
return (parseFloat(args.value).toFixed(2));
},