Javascript 出租车费

标签 javascript

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

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

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

最佳答案

好吧,我不知道我的数学计算是否正确,因为我必须通过查看模式来猜测利率是多少。有一个区域的东西我不确定那是关于什么的,但是通过查看原始代码,我认为这是改变两类倒计算的条件?

无论如何,您应该始终使用 var 作为变量,否则所有数据都会在全局空间中 float 。您有这样的表达式: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 ,就像我之前说的,我猜测表达式是如何完成的,因为您没有提供完整的费率或按时提供任何详细信息。看起来它正在工作,应该尝试一下。祝你好运,先生;-)

关于Javascript 出租车费,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35249087/

相关文章:

javascript - 使用 Ramda 进行函数组合

javascript - 在 Kendo 数据网格中保留额外的 dataSource.read 参数

javascript - 如何使用 JavaScript 文件调用 Grails Controller 的唯一方法?

javascript - 如何调度已经在javascript中调度的事件?

javascript - 根据浏览器语言切换 div 标签的可见性

javascript - 处理年份错误但时间正确的日期字符串的正确方法

javascript - 使用 onClick 事件处理程序时不断调用自身

javascript - CSS 并没有通过在 HTML 中调用 JS 来改变

php - 显示数据的最快方式

javascript - 无法使 vue.js element-ui 对话框在子组件内工作