JQuery添加两个数字

JQuery添加两个数字,jquery,numbers,add,Jquery,Numbers,Add,我正在尝试添加以下两个数字: 小时: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(

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

小时: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);
});
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));

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

试试看

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

下面是一个修正后的固定示例:

$(“#x_hh”).change(函数(){
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十进制标准”).val(hh+dmm);
$(“#x_stdmin”).val(studmin);
});

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

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

这看起来像是时间计算,而不仅仅是数字的加法。这是从字符串中强制输入数字的一种很酷的方法,我以前从未尝试过<代码>+“1”==1//true
$("#x_decimalstd").val(+hh+(+dmm));
$("#x_decimalstd").val(Number(hh)+Number(dmm));
$("#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);
})