使用JS或jQuery将带小数的数字转换为带小数的小时数

时间:2014-03-25 05:35:10

标签: javascript datetime math

嗨,我正在建立一个小发票计划。用户输入的时间分别为7.2,7.5,2.8。但我需要将此数字转换为带小数位的实际小时数

ex- 7小时45分钟等于7.75,而不是7.45。如果用户输入7.45

var hr=7.45;
var rate=10;
subtotal =hr*rate;
alert(subtotal);

应用程序计算如上,但它不正确,任何人都可以帮我解决这个问题 其他信息。

7.45 x $50.00 pr hr = $372.50
7.75 x $50.00 pr hr = $387.50
1 hour = 1.00 hour
1 hour and 25 minutes = 1.25 hours
1 hour and 30 minutes = 1.50 hours
1 hour and 45 minutes = 1.75 hours

2 个答案:

答案 0 :(得分:3)

你的逻辑看起来非常有缺陷,例如为什么1小时25分钟等于1.25当1小时30分钟等于1.5时,你会认为它应该接近1.42?

为什么用户在输入基于每小时60分钟的时间时输入2.8,3.2会更有意义吗?

无论如何,我猜这是你正在寻找的东西

function deciHours(time) {
    return (function(i) {return i+(Math.round(((time-i)*60),10)/100);})(parseInt(time, 10));
}

FIDDLE

答案 1 :(得分:2)

你应该使用将7.75变量拆分为两个。将值7保存在一个变量中,然后将多个0.75 * 60 = 45保存,然后将其附加到第一个变量。应该工作。