2010-11-29 6 views
1
var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec); 
var resstr=result.toString(); 
var res=resstr.split("."); 
var test=parseInt(res[1].charAt(0)); 
var test1=parseInt(res[1].charAt(1)); 

c'est mon code lorsque ma valeur dans la variable res est 5,90 alors je teste alerte & variables test1 en alerte d'essai, il montre la valeur correcte-à-dire « 9 », mais en alerte test1 il montre un message comme « Nan » si la variable res contiennent la valeur 5,35 il fonctionne correctement ietest = 3 & test1 = 5 que cela ne fonctionne pas lorsque test1 contient une valeur « 0 » il donne un message « Nan »comment lire la valeur zéro en utilisant la fonction parseInt

Répondre

0

Le problème est que vous créez une chaîne telle que '12.3' et la divisez en 3. .charAt(1) sur cette chaîne renvoie une chaîne vide, '', qui parseInt se transforme en NaN.

Eh bien, une solution facile et hacky serait:

test1 = test1 || 0; 

Vous pouvez également envisager un calcul au lieu de la manipulation de chaînes:

var result = 98.1234; 
var d1 = Math.floor(result * 10) % 10; 
var d2 = Math.floor(result * 100) % 10; 
Questions connexes