使用Jquery

时间:2016-10-06 10:08:50

标签: jquery

我有一个id = num的输入文本框。我给它一个值32.5687。我想将它转换为像这样的数字32.57。我尝试了下面的代码返回32.57然后我用typeof()方法测试它的类型,它说它是一个字符串而不是一个数字。

$(documnet).ready(function(){
    $nmuber = $("#num").val();
    $number = parseFloat($number).toFixed(2);
    alert(typeof($number));
});

我的错误或将文本输入值转换为两位十进制数的正确过程是什么?

4 个答案:

答案 0 :(得分:1)

除了错别字,这是预期的行为; toFixed()返回一个字符串。如果您希望将舍入值保留为浮点值,请使用Math.round()



number = Math.round(parseFloat('32.5687') * 100) / 100;
console.log(number);
console.log(typeof(number));

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

答案 1 :(得分:1)

    var num = 32.5687;
    var n = num.toFixed(2);
    n = parseFloat(n);
    alert(typeof(n));

toFixed()将只格式化字符串。您需要将parseFloat()与toFixed()结合使用。如上所述的简化示例。

正如@Rory正确评论 - 请注意,在字符串上调用toFixed()会导致隐式类型强制,这可能无法在所有情况下为您提供所期望的结果。

答案 2 :(得分:0)

尝试

    var numb = parseFloat($("#num").val());
    numb = Math.round(numb * 100) / 100
    alert(numb);

JS FIDDLE

答案 3 :(得分:-1)

jQuery .val()函数将始终为所选的单个元素返回字符串。你必须明确地parseFloat在你的代码中使用它。