JQuery添加两个数字

时间:2015-06-17 17:24:53

标签: jquery numbers add

我尝试添加以下两个数字:

hh:1(小时) mm:45(分钟)

我希望得到以下十进制结果:1.75

但我得到的结果是:10.75。我尝试了.toFixed(2) ...

你能告诉我在哪里犯这个错误吗?

$("#x_hh").change(function() {
    var hh = parseInt($("#x_hh").val());
    var mm = parseFloat($("#x_mm").val());
    var dmm = parseFloat($("#x_mm").val()/60).toFixed(2);
    var studmin =$("#x_hh").val()+":"+$("#x_mm").val();
    $("#x_decimalstd").val(hh+dmm);
    $("#x_stdmin").val(studmin);
});

4 个答案:

答案 0 :(得分:1)

结果返回10.75,因为hh = 1dmm = 0.75以及+运算符将它们连接起来。

尝试,

$("#x_decimalstd").val(+hh+(+dmm));

$("#x_decimalstd").val(Number(hh)+Number(dmm));

答案 1 :(得分:0)

var hh = parseInt($("#x_hh").val());
var dmm = parseFloat($("#x_mm").val()/60).toFixed(2);
$("#x_decimalstd").val(hh+dmm);

hh是一个int,但是dmm是一个字符串,所以这将它们视为字符串连接而不是数字加法。更好:

var hh = parseInt($("#x_hh").val());
var mm = parseFloat($("#x_mm").val());
var total = hh + mm / 60;
$("#x_decimalstd").val(total.toFixed(2));

答案 2 :(得分:0)

停止使用toFixed(),当您不想要时,它会转换为字符串。

这是 fixed 更正的示例:



$("#x_hh").change(function() {
    var hh = parseInt($("#x_hh").val());
    var mm = parseFloat($("#x_mm").val());
    var dmm = parseFloat($("#x_mm").val()/60);
    var studmin =$("#x_hh").val()+":"+$("#x_mm").val();
    $("#x_decimalstd").val(hh+dmm);
    $("#x_stdmin").val(studmin);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="x_hh" value="" />
<input id="x_mm" value="45"/>
<input id="x_decimalstd" />
<input id="x_stdmin" />
&#13;
&#13;
&#13;

答案 3 :(得分:0)

以下代码解决了我的问题。非常感谢您的支持。

$("#x_h").change(function() {
var h = parseInt($("#x_h").val());
var mm = parseFloat($("#x_mm").val());
var total = h + (mm / 60);
var studmin =$("#x_h").val()+":"+$("#x_mm").val();
$("#x_decimalstd").val(total.toFixed(2));
$("#x_stdmin").val(studmin);
})