JQuery添加两个数字
我正在尝试添加以下两个数字: 小时:1(小时) mm:45(分钟) 我想得到以下十进制结果:1.75 但我得到的结果是:10.75。我尝试了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(
.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);
})