我得到了功能设置和变量。我正在尝试计算每个开始区域,结束区域和经过时间的出租车费。
到目前为止,这里我所拥有的,但是计算得并不好。
它一直给我$5
if( startZone == 1 && endZone == 1 ){
totalTaxiFare = baseCharge;
if( timeCovered > 0 && timeCovered <= 4 ){
baseCharge = 5.00;
charge = (0.75/timeCovered)*timeCovered;
totalTaxiFare = baseCharge + charge;
}
}
if( startZone == 1 && endZone == 2 ){
totalTaxiFare = baseCharge;
if( timeCovered > 4 && timeCovered <= 10 ){
baseCharge = 7.00;
charge =( 3.00 + (0.50 * ( timeCovered - 4 ) * ( 0.75 / timeCovered ) * timeCovered ) );
totalTaxiFare = baseCharge + charge;
}
}
document.writeln("<p> The total taxi fare is $" + totalTaxiFare + "</p>");
最佳答案
好的,我不知道数学是否正确,因为我不得不通过观察模式来猜测速率。我不确定那是什么区域的问题,但是通过查看原始代码,我认为这是改变工作2个班次的计算的条件吗?
无论如何,您应该始终对变量使用var
,否则所有这些数据都会在globalspace中浮动。您具有以下表达式:totalTaxiFare = baseCharge;
随处可见。因此,看起来您的totalTaxiFare
最终总是不断地更改为恒定值5.00的baseCharge
。如果使用var
并将大多数变量保留在本地,则可能会得到不同的结果,但是使用表达式获得的结果将不准确。
我绝对不是数学向导(在高中时是懒惰的),但这是一个可以为出租车费提供适当结果的表达式吗?
(0.75/timeCovered)*timeCovered;
好吧,首先括号内,我们要说3分钟? 3小时?我猜是3个时间单位。
(.75/3)*3
是(.25)*3
也是.75
,因此已更改为更合适的表达式:(.75)*timeCovered;
所以那是
(.75)*3 = 2.25
抱歉,如果我听起来很刺耳,我认为如果您要编程,则应特别注意数学。即使您的语法是完美无缺的,但即使数学稍有偏差也无济于事。
就像我之前说的,这是一个DEMO,我猜想表达式是如何完成的,因为您没有提供完整的汇率或未及时提供任何详细信息。看起来它正在运行,应该尝试一下。先生,祝你好运;-)