我得到了功能设置和变量。我正在尝试计算每个开始区域,结束区域和经过时间的出租车费。

到目前为止,这里我所拥有的,但是计算得并不好。

它一直给我$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,我猜想表达式是如何完成的,因为您没有提供完整的汇率或未及时提供任何详细信息。看起来它正在运行,应该尝试一下。先生,祝你好运;-)

09-25 18:38