« Firefox 1.5.0.4 Released - 更新 http://firefox.ipcn.org 提供镜像下载 | Main | Squid 2.6.PRE2 release »
June 4, 2006
[个人打车信息] 超过19公里应该重新打表
|
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明。 http://windtear.net/archives/2006/06/04/000998.html http://windtear.net/archives/2006/06/04/000998.html [个人打车信息] 超过19公里应该重新打表 19公里是个临界点 (适用2元的车 1.6元的车临界点是22公里) 对比计算器: 里程: 一气贯通: 15公里重连: 去掉parseFloat的javascript代码如下: var CalcMile=(Mile-3); var price=2; var Together=0; var Onebyeone=0; if (CalcMile<=0) {Together=10;Onebyeone=10;} else if (CalcMile>0&&Mile<=15) {Together=10+CalcMile*price;Onebyeone=Together;} else if (Mile>=15&&Mile<=18) {Together=10+12*price+(Mile-15)*price*1.5; Onebyeone=10+12*price+10;} else if (Mile>=18) {Together=10+12*price+(Mile-15)*price*1.5; Onebyeone=10+12*price+10+(Mile-18)*price;} |
Posted by windtear at June 4, 2006 11:19 PM
Trackback Pings
TrackBack URL for this entry:
http://cgi.windtear.net/cgi-bin/wt-tb.cgi/998
Comments
这个相当实用嘛.:0
Posted by: nightcat at July 6, 2006 4:29 PM
"19公里是个临界点"什么意思?笔误?
应该是15公里抬一次表吧。
Posted by: IT民工 at September 6, 2006 10:57 PM
意思是
如果长度超过了19公里 则重新打表省钱(15公里时重新打)
如果不超过19公里 没必要重新打表
是这个临界的意思
Posted by: windtear at September 7, 2006 9:48 AM
计算公式可能有点小问题。
经过咨询相关部门,都是按照500米为一个计价单元计算的,则每一个价格分段按照如下公式更为精确:
Math.floor((2*d+1)*u/2)
其中d为在此价格分段内的公里数,u为单价。
举例来说:在[3,15)公里这一段,如果走了5.2公里,那么d=5.2-3=2.2,u=2,代入得到这2.2公里花费5元,加上起步的10元,共计15元。
如果打表走了3.0公里,将d=0,u=2代入,得到1,即打表3.0公里时,花费为11元。真的,的确会收11元,理由就是……过了这个临界点。
但是还有一个疑问,如果单价3元/公里,按照这个公式,当d=0.9,u=3时,费用为4元,这就有点离谱……
所以,到底超过15公里时,应该如何计算,我还不是很确定。但是肯定计价器是1元1元的蹦的……
Posted by: IT民工 at September 12, 2006 1:48 AM