Firebug가 toFixed ()가 함수가 아니라고 말하는 이유는 무엇입니까?
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 코드가 있습니다 .
함수에서 다음과 같이 사용하십시오.
render: function (args) {
if (args.value != 0)
return (parseFloat(args.value).toFixed(2));
},
참고 URL : https://stackoverflow.com/questions/14059201/why-does-firebug-say-tofixed-is-not-a-function
'Development Tip' 카테고리의 다른 글
JavaScript / jQuery : 창에 포커스가 있는지 테스트 (0) | 2020.10.08 |
---|---|
GitHub Wiki (gollum) 저장소에 이미지를 삽입 하시겠습니까? (0) | 2020.10.08 |
하나의 명령으로 Dockerfile 빌드 및 실행 (0) | 2020.10.08 |
짧은 IF-ELSE 문 (0) | 2020.10.08 |
JSON을 ArrayList로 역 직렬화 (0) | 2020.10.08 |