javascript - tutorial - Perché Firebug dice a Fixed() non è una funzione?



(2)

Sto usando jQuery 1.7.2 e jQuery UI 1.9.1. Sto usando il codice qui sotto all'interno di un cursore. (Http://jqueryui.com/slider/)

Ho una funzione che dovrebbe testare due valori e in base alla differenza tra i due valori riformattarli (alla posizione decimale appropriata). Se la differenza è maggiore di 10, analizzerò il numero intero. Se la differenza è maggiore di 5, dovrebbe mantenere un decimale. Tutto il resto, terrò due decimali.

Quando inserisco due valori che hanno una differenza di dieci o meno, io uso la funzione toFixed (). E, in Firebug, vedo un errore:

TypeError: Low.toFixed is not a function
Low = Low.toFixed(2);

C'è qualcosa di semplice che sto sbagliando?

Ecco il mio codice:

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

https://ffff65535.com


Questo perché Low è una stringa.

.toFixed() funziona solo con un numero.

Prova a fare:

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

Low è una stringa.

.toFixed() funziona solo con un numero.

Un modo semplice per superare questo problema è:

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

La moltiplicazione per 1 forza il codice per convertire la stringa in numero e non modifica il valore. Codice JSFiddle here .





javascript