【问题标题】:Javascript Taxi fareJavascript 出租车费
【发布时间】:2016-02-07 14:25:10
【问题描述】:

我已处理好函数设置和变量。我正在尝试计算每个起始区域的出租车费用结束区域经过的时间

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

它一直给我$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>");      

【问题讨论】:

  • 如果时间>0
  • 如果出租车从 >0 点开始但
  • 如果觉得不如给你5.75

标签: javascript


【解决方案1】:

好的,我不知道我的数学计算是否正确,因为我必须通过查看模式来猜测费率是多少。有那个区域的东西我不确定那是什么,但是通过查看原始代码,我认为更改工作 2 班次的计算是有条件的?

无论如何,您应该始终使用var 作为变量,否则所有这些数据都在全局空间中浮动。你有这样的表达:totalTaxiFare = baseCharge; 被暴露在周围漂浮。因此,看起来您的 totalTaxiFare 最终会不断更改为 baseCharge,它的值为 5.00。如果您使用 var 并将大部分变量保留在本地,您可能会得到不同的结果,但使用表达式时,这些结果将不准确。

我绝对不是数学天才(高中时很懒惰),但这是一个可以为出租车费用产生适当结果的表达式吗?:`

(0.75/timeCovered)*timeCovered; 

好的,先加上括号,我们会说 3 分钟? 3小时?我猜是 3 个时间单位。

(.75/3)*3(.25)*3.75 所以改成更合适的表达方式:

(.75)*timeCovered;

那就是

(.75)*3 = 2.25

对不起,如果我听起来很苛刻,我认为如果你想编程,你应该特别注意你的数学。即使您的语法完美无瑕,即使数学有点偏差也无济于事。

这是DEMO,就像我之前说的,我猜到了表达式是如何完成的,因为您没有提供完整的费率或按时提供任何详细信息。看起来它正在工作,应该试一试。祝你好运,先生;-)

【讨论】:

  • 感谢 Zer00ne,提示和演示非常有帮助。搞定了。你很感激。谢谢,
  • @KarelPoborski 非常欢迎您,如果此答案有助于解决您的问题,请单击绿色复选标记。 :-)
猜你喜欢
  • 2021-05-25
  • 2013-06-19
  • 2013-08-19
  • 1970-01-01
  • 1970-01-01
  • 2012-09-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多