你能帮助我得到十进制的小时数。我真的不知道怎么问。
总和7.6应该是8小时,因为我的数据是0.1小时直到0.5小时。你们可以帮助我得到这笔钱,而不是得到* .6直到* .9?
function change() {
var h1 = $('#hs1').val();
var h2 = $('#hs2').val();
var h3 = $('#hs3').val();
var h4 = $('#hs4').val();
var sum = parseFloat(h1) + parseFloat(h2) + parseFloat(h3) + parseFloat(h4);
document.getElementById("the_sum").innerHTML = parseFloat(sum).toFixed(1);
}
这是我的代码,用于在更改下拉列表中计算总和。
我实际上想要小数。但我不希望它只是0.6直到0.5因为我计算十进制的小时数。 $ hour_arr = array(0.1,0.2,0.3,0.4,0.5,1,1.1,1.2,1.3,1.4,1.5,2,2.1,2.2,2.3,2.4,2.5,3,3.1,3.2,3.3,3.4 ,3.5,4,4.1,4.2,4.3,4.4,4.5,5,5.1,5.2,5.3,5.4,5.5,6,6.1,6.2,6.3,6.4,6.5,7,7 .1,7.2,7.3, 7.4,7.5,8);
例如0.1 + 0.2 + 0.3 = 0.6这是小时。 0.6应该是1小时。不是0.6。 0.7应该是1.1小时。你们明白我的问题吗?
我希望得到0.1小时+0.2小时+ 0.3小时= 1小时。不是0.6小时。帮帮我们
答案 0 :(得分:0)
document.getElementById("the_sum").innerHTML = Math.ceil(sum);
答案 1 :(得分:0)
您想要做的是以小时为单位显示所选时间?
所以
20min + 20min + 20min = 1.0
30min + 20min + 30min = 1.333333
您应该使用分钟作为选择框的值,并将总和除以60得到浮点数:
HTML:
<select id="hs1" onchange="change()">
<option value="0"></option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<select id="hs2" onchange="change()">
<option value="0"></option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<select id="hs3" onchange="change()">
<option value="0"></option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<select id="hs4" onchange="change()">
<option value="0"></option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<div id="the_sum"></div>
JS:
$('#hs1, #hs2, #hs3, #hs4').change(function() {
var h1 = $('#hs1').val();
var h2 = $('#hs2').val();
var h3 = $('#hs3').val();
var h4 = $('#hs4').val();
var sum = parseFloat(h1) + parseFloat(h2) + parseFloat(h3) + parseFloat(h4);
$("#the_sum").html(parseFloat(sum / 60).toFixed(1));
});
答案 2 :(得分:0)
好的,7.9分8小时30分钟......所以请使用此
sum = sum.toString().split(".");
console.log(sum);
sum = parseFloat(sum[0]) + parseFloat( parseInt(sum[1])>6 ? 1+(parseInt(sum[1])-6)/10 : sum[1] );
然后你可以再次拆分以获得分开的小时和分钟
答案 3 :(得分:0)
好的,这是另一次尝试:
DEMO:https://jsfiddle.net/fzyxfbfz/3/
HTML:
<select id="hs1">
</select>
<select id="hs2">
</select>
<select id="hs3">
</select>
<select id="hs4">
</select>
<div id="the_sum"></div>
JS:
//This is just to populate the select boxes with values from 0 to 8
var arrData = new Array();
for(i=0;i<=8;i+=0.1) {
arrData.push(i.toFixed(1));
}
$('#hs1, #hs2, #hs3, #hs4').each(function() {
for(i=0;i<arrData.length;i++) {
$(this).append('<option value="' + arrData[i] + '">' + arrData[i] + '</option>');
}
});
$('#hs1, #hs2, #hs3, #hs4').change(function() {
var h1 = $('#hs1').val();
var h2 = $('#hs2').val();
var h3 = $('#hs3').val();
var h4 = $('#hs4').val();
//Calculate the sum
var sum = parseFloat(h1) + parseFloat(h2) + parseFloat(h3) + parseFloat(h4);
sum = parseFloat(sum).toFixed(1);
var parts = sum.split('.');
parts[1] = parseFloat(parts[1]);
parts[0] = parseFloat(parts[0]);
if(parts[1] >= 6) {
parts[1] -= 6;
parts[0] += 1;
}
$("#the_sum").html(parts.join('.'));
});
答案 4 :(得分:0)
$(document).ready(function(){
$('select').on('change', updateSum);
});
function updateSum(){
var hours = 0,
sum = 0;
$('select option:selected').each(function(i, option){
sum += parseInt($(option).val());
});
var hours = sum / 60.0;
$('#sum').text(sum + ' minutes = ' + hours + ' hours');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select id='hs1'>
<option value='0'>Select</option>
<option value='10'>10 minutes</option>
<option value='20'>20 minutes</option>
<option value='30'>30 minutes</option>
<option value='40'>40 minutes</option>
<option value='50'>50 minutes</option>
<option value='60'>1 hour</option>
</select>
<select id='hs3'>
<option value='0'>Select</option>
<option value='10'>10 minutes</option>
<option value='20'>20 minutes</option>
<option value='30'>30 minutes</option>
<option value='40'>40 minutes</option>
<option value='50'>50 minutes</option>
<option value='60'>1 hour</option>
</select>
<select id='hs3'>
<option value='0'>Select</option>
<option value='10'>10 minutes</option>
<option value='20'>20 minutes</option>
<option value='30'>30 minutes</option>
<option value='40'>40 minutes</option>
<option value='50'>50 minutes</option>
<option value='60'>1 hour</option>
</select>
<select id='hs4'>
<option value='0'>Select</option>
<option value='10'>10 minutes</option>
<option value='20'>20 minutes</option>
<option value='30'>30 minutes</option>
<option value='40'>40 minutes</option>
<option value='50'>50 minutes</option>
<option value='60'>1 hour</option>
</select>
<div>Sum: <span id='sum'></span></div>
&#13;