Javascript 舍入小数
试着教自己一些东西,结果只能半途而废。我有一些代码为我的计算机做一些数学运算,但它抛出了错误的答案,因为我无法将它四舍五入到小数点后2位。我希望有人能帮忙 示例:在“秒”输入中输入34,“小数点”将为.57 这是小提琴上的链接 这里是javascript,我知道这就是问题所在Javascript 舍入小数,javascript,math,Javascript,Math,试着教自己一些东西,结果只能半途而废。我有一些代码为我的计算机做一些数学运算,但它抛出了错误的答案,因为我无法将它四舍五入到小数点后2位。我希望有人能帮忙 示例:在“秒”输入中输入34,“小数点”将为.57 这是小提琴上的链接 这里是javascript,我知道这就是问题所在 $(document).ready ( function() { $('#min').keyup(calculate); $('#sec').keyup(calculate); $('#dec').keyup(
$(document).ready (
function() {
$('#min').keyup(calculate);
$('#sec').keyup(calculate);
$('#dec').keyup(calculate);
$('#dis').keyup(calculate);
$('#kilo').keyup(calculate);
$('#speed').keyup(calculate);
}))
试试这个
$('#dec').val(Math.floor(($('#sec').val() / 60) * 100) / 100);
表单控件的值始终作为字符串返回。大多数算术运算都会将它们转换为数字,但不会将它们转换为
+
,如果任何参数是字符串,则会进行串联,因此
$('#dis').val($('#min').val() + $('#dec').val());
不进行串联,而不是加法
要将数字四舍五入到固定的位数,请使用toFixed。示例代码(我认为为此放弃jQuery更简单、更高效):
一些HTML:
<form id="f0" onkeyup="calculate(event);">
<table>
<tr><td>Min:<td><input type="text" name="min">
<tr><td>Sec:<td><input type="text" name="sec">
<tr><td>Dec:<td><input type="text" name="dec">
<tr><td>Dis:<td><input type="text" name="dis">
<tr><td>Km:<td><input type="text" name="kilo">
<tr><td>Speed:<td><input type="text" name="speed">
</table>
</form>
最小值:
证券交易委员会:
12月:
数字化信息系统:
公里:
速度:
使用正常的四舍五入方法有什么问题(当然,除了它实际上不起作用之外)?这样做可以节省一些代码:$('input')。keyup(calculate);要设置浮点的显示格式,您可以使用myNumber.toFixed(2)。您应该只在末尾进行四舍五入,因此首先计算值,然后在显示时进行四舍五入。答案应包括解释OP代码不起作用的原因以及您的答案解决问题的原因。
function calculate(evt) {
var el = evt.target || evt.srcElement;
var f = el.form;
if (!f) return;
// Division converts strings to numbers
var dec = f.sec.value / 60;
// Use unary + to convert strings to numbers for addition
var dis = +f.min.value + +f.dec.value;
// Dispaly values to 2 decimal places (or round if preferred)
f.dec.value = dec.toFixed(2);
f.dis.value = dis.toFixed(2);
f.kilo.value = (60 / dis).toFixed(2);
}
<form id="f0" onkeyup="calculate(event);">
<table>
<tr><td>Min:<td><input type="text" name="min">
<tr><td>Sec:<td><input type="text" name="sec">
<tr><td>Dec:<td><input type="text" name="dec">
<tr><td>Dis:<td><input type="text" name="dis">
<tr><td>Km:<td><input type="text" name="kilo">
<tr><td>Speed:<td><input type="text" name="speed">
</table>
</form>