嗨,我正在建立一个小发票计划。用户输入的时间分别为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
答案 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));
}
答案 1 :(得分:2)
你应该使用将7.75变量拆分为两个。将值7保存在一个变量中,然后将多个0.75 * 60 = 45保存,然后将其附加到第一个变量。应该工作。