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 = 1
和 dmm = 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);
})
我尝试将以下两个数字相加:
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 = 1
和 dmm = 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);
})