我正在使用FLEX 3.0版 我想计算总工时。我正在向您提供详细信息以及我在其中所做的工作。
var a:Number = 2.00;
var b:Number = 2.00;
var c:Number = 1.45;
var d:Number = 1.30;
var total:Number = a+b+c+d;
var totalmin:int = total;
var temp:Number = total - totalmin;
var tem2:Number = 0.60 - temp;
var workhour:Number = 0;
while(total >= 0)
{
workhour += 1;
total -= 1.00;
}
var tot:Number = workhour + tem2;
txtTotal.text = tot.toString();
我希望结果7.15不是6.75。 目前我得到6.85 ...请帮助解决这个问题。
提前感谢。
答案 0 :(得分:1)
我想问题是你正在使用十个基于值的值,但是小时是基于60的值。因此,1.5小时并不意味着150分钟,如十进制系统(例如1.5米意味着150厘米),但90分钟。
我的建议:使用原生Date类,或选择仅在单元中工作以保持数学一致。但Date类是为了这些目的而制作的。提取两个Date.getTime(),然后将结果转换为新的Date,可以得到你想要的结果。
答案 1 :(得分:0)
你想要什么
var a:Number = 2.00;
var b:Number = 2.00;
var c:Number = 1.45;
var d:Number = 1.30;
var total:Number = a+b+c+d;
var totalmin:int = total;
var temp:Number = total - totalmin;
var tem2:Number = temp - 0.6; // !!!This line changes!!!
var workhour:Number = 0;
while(total >= 0)
{
workhour += 1;
total -= 1.00;
}
var tot:Number = workhour + tem2;
txtTotal.text = tot.toString();
答案 2 :(得分:0)
我在这个上做了很多工作,找到了一个有趣的问题...... 我已经找到了正确答案。继续发布那些有趣的问题。
这是代码。
var a:Number = 2.23;
var b:Number = 2.36;
var c:Number = 1.18;
var d:Number = 1.13;
var totalHours = 0.0;
var inta:int = a;
var numa:Number = a - inta;
var intb:int = b;
var numb:Number = b - intb;
var intc:int = c;
var numc:Number = c - intc;
var intd:int = d;
var numd:Number = d - intd;
var total:int = inta + intb + intc + intd;
var totalsec:Number = numa + numb + numc + numd;
var tempsec:int = totalsec * 100;
var temp:int = tempsec/60;
total += temp;
var sec:Number = tempsec - (temp*60);
sec = sec/100;
totalHours = total + sec;
txtTotal.text = totalHours.toString();