Firebug가 toFixed ()가 함수가 아니라고 말하는 이유는 무엇입니까?


95

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);
}
}

나도 같은 문제가 있습니다. 그러나 지역에서 그 일. 라이브에있을 때 오류 표시-TypeError : value.sell_price.toFixed는 함수가 아닙니다
Mizanur Rahman

답변:


177

toFixed숫자가 아닌 변수 유형의 방법이 아닙니다. 즉, Low그리고 High당신이 자바 스크립트에서 뭔가의 가치를 얻을 때, 그것은 자동으로 문자열 유형으로 설정되어 있기 때문에 고정 할 수 없습니다. 사용 parseFloat()(또는 parseInt()정수인 경우 기수 사용 )을 사용하면 다양한 변수 유형을 숫자로 변환하여 toFixed()함수가 작동 할 수 있습니다.

var Low  = parseFloat($SliderValFrom.val()),
    High = parseFloat($SliderValTo.val());

$ 기호 뒤의 괄호와 따옴표를 잊으 셨죠?
Ari Waisberg

1
@AriWais은 $SliderValFrom영업 이익이 아닌 함수에 의해 사용되는 변수 이름입니다
제레미

@jeremy 당신 말이 맞아요, 나는 원래 포스트에주의를 기울이지 않았습니다 ... 나는 그 해결책을 바로 찾는 사람들에게 그것의 parseFloat ($ ( 'slide'). val ())
Ari Waisberg

93

그것은 Low문자열 이기 때문 입니다.

.toFixed() 숫자로만 작동합니다.


시도해보십시오.

Low = parseFloat(Low).toFixed(..);

내 오류를 수정했습니다. 감사합니다. 이 문제는 firefox 브라우저에서 직면했습니다.
ShivarajRH

26

Low 문자열입니다.

.toFixed() 숫자로만 작동합니다.

이러한 문제를 극복하는 간단한 방법은 유형 강제 를 사용하는 것입니다 .

Low = (Low*1).toFixed(..);

1을 곱하면 코드가 문자열을 숫자로 변환하고 값을 변경하지 않습니다. 여기에 JSFiddle 코드가 있습니다 .


1
P : (+ 낮은) .toFixed (..)와 하나 개의 문자 저장
프랭크

2

숫자 유형으로 변환해야합니다.

(+Low).toFixed(2)

0

함수에서 다음과 같이 사용하십시오.

render: function (args) {
    if (args.value != 0)
        return (parseFloat(args.value).toFixed(2));


},
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.