如何从input元素中获取值作为十进制数

时间:2014-11-27 12:28:32

标签: jquery input numbers decimal

我想从输入元素中获取值作为数字并使用jQuery计算它们。我正在尝试,但结果不是十进制的。如何解决这个问题?

HTML

<input name="test1" value="1.77" type="hidden" />
<input name="test2" value="1.23" type="hidden" />

的jQuery

var a = parseInt($( "input[name='test1']").val(), 10);
var b = parseInt($( "input[name='test2']").val(), 10);
alert( a + b ); // should be 3, but it is only 2

这是一个例子 - &gt; jsfiddle Example

5 个答案:

答案 0 :(得分:3)

使用parseFloat表示小数而不是parseInt(这是整数)!

e.g。

var a = parseFloat($( "input[name='test1']").val(), 10);
var b = parseFloat($( "input[name='test2']").val(), 10);
var c = ( a + b );

$('#result').append( c );

JSFiddle:http://jsfiddle.net/TrueBlueAussie/87tdj7z3/5/

答案 1 :(得分:3)

+运算符是解析数字的快捷方式,包括整数和浮点数。

&#13;
&#13;
var a = +$("input[name='test1']").val();
var b = +$("input[name='test2']").val();
alert(a + b);
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="test1" value="1.77" type="hidden" />
<input name="test2" value="1.23" type="hidden" />
&#13;
&#13;
&#13;

答案 2 :(得分:2)

使用parseFloat代替parseInt,如下所示

var a = parseFloat($("input[name='test1']").val());
var b = parseFloat($("input[name='test2']").val());
alert( a + b );

fiddle

答案 3 :(得分:1)

function myFunction() {
    var a = parseFloat("10") + "<br>";
    var b = parseFloat("10.00") + "<br>";
    var c = parseFloat("10.33") + "<br>";
    var d = parseFloat("34 45 66") + "<br>";
    var e = parseFloat("   60   ") + "<br>";
    var f = parseFloat("40 years") + "<br>";
    var g = parseFloat("He was 40") + "<br>";

    var n = a + b + c + d + e + f + g;
    document.getElementById("demo").innerHTML = n;
}

答案 4 :(得分:1)

我发现我通过jQuery从输入中获取值并调用了很多parseFloat所以我创建了一个小的jQuery插件,将输入值作为数字返回,使用plus operator

jQuery.fn.valNum = function () {
    return +(this.val());
};