如何计算小时和的小时数

你能帮助我得到十进制小时数吗? 我真的不知道如何正确地问。

总和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小时。 帮帮我们

好的,这是另一个尝试:

演示: https : //jsfiddle.net/fzyxfbfz/3/

HTML:

     

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[i] + ''); } }); $('#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('.')); }); 
  document.getElementById("the_sum").innerHTML = Math.ceil(sum); 

您想要做的是以小时数显示所选时间作为浮点数?

所以

 20min + 20min + 20min = 1.0 30min + 20min + 30min = 1.333333 

您应该使用分钟作为选择框的值,并将总和除以60得到浮点数:

HTML:

     

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)); }); 

演示: https : //jsfiddle.net/fzyxfbfz/

好吧,对你来说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] ); 

然后你可以再次拆分以分开小时和分钟

https://jsfiddle.net/62yv7dt0/

 $(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'); } 
      
Sum: