JQuery 两个数字相加

JQuery add two numbers

我尝试将以下两个数字相加:

hh: 1(小时) 毫米: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);
});
var hh = parseInt($("#x_hh").val());
var dmm = parseFloat($("#x_mm").val()/60).toFixed(2);
$("#x_decimalstd").val(hh+dmm);

hh 是一个整数,但 dmm 是一个字符串,因此这将它们视为字符串连接而不是数字加法。更好的做法是:

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

结果 returns 10.75 因为 hh = 1dmm = 0.75 以及 + 运算符连接它们。

试试,

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

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

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

这是一个固定的更正示例:

$("#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" />

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

$("#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);
})