如果声明问题,toPrecision无法正常工作

时间:2013-12-05 21:20:33

标签: javascript jquery

编码似乎没有效果?当获胜者超过10位数时,它不会改变

if(winner.length > 10){
   winner = winner.toPrecision(10);
   $('#podiumBox').val(winner)
   winner1 = winner;
}else{
   $('#podiumBox').val(winner)
   winner1 = winner;
}

2 个答案:

答案 0 :(得分:2)

winner是一个字符串(使用length属性推断),而toPrecisionNumber的方法。 JavaScript有松散的输入,是的,但您仍然需要强制转换它才能访问该方法:

Number(winner).toPrecision(9)

答案 1 :(得分:2)

如果winner是数字,则winner.length未定义,因此winner.length > 9为false,导致else块执行。

如果winner是字符串,那么winner.toPrecision(9)会导致TypeError - 请检查您的javascript控制台。

无论哪种方式,都应该涵盖它:

if( winner.toString().length > 9 ) winner = parseFloat(winner).toPrecision(9);
$('#podiumBox').val(winner)
winner1 = winner;