我不知道我失败的地方。我正在尝试一个简单的事情:检索输入,将其解析为float并使用该值进行计算(由用户引入),但是,它返回NaN。
这是输入(我在代码中用点逗号替换逗号,但是现在我只是在Firebug控制台中尝试最简单的方法):
<input id="percent_31" class="form-control input-sm text-right" type="text" name="percent[31]" value="-3.3333">
这就是我的尝试:
var percent = parseFloat($('#percent_31').val()).toFixed(2);
console.log(percent);
console.log(jQuery.type(percent));
/*This returns -3.33 and string type*/
console.log((100 + percent)/100);
/*This, as expected, returns NaN*/
另一方面,这是有效的。
percent = -3.33;
console.log(percent);
console.log(jQuery.type(percent));
/*This returns -3.33 and number type*/
console.log((100 + percent)/100);
/*This returns what I need: 0.9667*/
答案 0 :(得分:1)
如果你想舍入最多两位小数:
> percent = "-3.33678";
'-3.33678'
> typeof(percent);
'string'
> percent = Number(parseFloat(percent).toFixed(2));
-3.34
> typeof(percent);
'number'
如果你想截断小数而不是围绕它们:
> percent = "-3.33678";
'-3.33678'
> typeof(percent);
'string'
> percent = Number(percent.slice(0, (percent.indexOf(".")) + 3));
-3.33
> typeof(percent);
'number'
答案 1 :(得分:1)
您可以使用&#39; Number()&#39;
var values = $('#percent_31').val();
var percent = Number(parseFloat(values).toFixed(2));
console.log(percent);
//console.log(jQuery.type(percent));
/*This returns -3.33 and string type*/
console.log((100 + percent)/100);
/*This, as expected, returns NaN*/
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="percent_31" class="form-control input-sm text-right" type="text" name="percent[31]" value="-3.3333">
&#13;
答案 2 :(得分:0)
创建变量并为该变量赋值。
var myvalue = $('#percent_31').val();
var percent = parseFloat(myvalue).toFixed(2);
console.log(percent);
答案 3 :(得分:0)
jQuery方法val()返回一个字符串,因此您可以使用Number()来处理数值:
var val = $('#percent_31').val(),
percent = Number(parseFloat(val).toFixed(2)),
result = (100 + percent) / 100;
console.log('percent:', percent);
console.log('type:', $.type(percent));
console.log('result:', result);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input id="percent_31" class="form-control input-sm text-right" type="text" name="percent[31]" value="-3.3333">
&#13;