在coldfusion9下用round和numberformat做四舍五入不可靠

来源:互联网 发布:滴滴有抢单软件吗 编辑:程序博客网 时间:2024/06/12 00:56
round(2619.615*100)的结果是不等于round(261961.5)
下面是演示代码:
<cfoutput>round(2619.615)=#round(2619.615)#</cfoutput><br/><cfoutput>round(261961.4)=#round(261961.4)#</cfoutput><br/><cfoutput>round(261961.5)=#round(261961.5)#</cfoutput><br/><cfoutput>round(261961.6)=#round(261961.6)#</cfoutput><br/><cfoutput>2619.615*100=#2619.615*100#</cfoutput><br/><cfoutput>round(2619.614*100)=#round(2619.614*100)#</cfoutput><br/><cfoutput>round(2619.615*100)=#round(2619.615*100)#</cfoutput><br/><cfoutput>round(2619.616*100)=#round(2619.616*100)#</cfoutput><br/><cfoutput>round(2619.615*100)/100=#round(2619.615*100)/100#</cfoutput><br/><cfoutput>numberformat(2619.615,0.00)=#numberformat(2619.615,0.00)#</cfoutput><br/><cfoutput>numberformat(2619.615*100,0.00)=#numberformat(2619.615*100,0.00)#</cfoutput><br/><cfoutput>numberformat(2619.614*100,0)=#numberformat(2619.614*100,0)#</cfoutput><br/><cfoutput>numberformat(2619.615*100,0)=#numberformat(2619.615*100,0)#</cfoutput><br/><cfoutput>numberformat(2619.616*100,0)=#numberformat(2619.616*100,0)#</cfoutput><br/><cfoutput>numberformat(261961.4,0)=#numberformat(261961.4,0)#</cfoutput><br/><cfoutput>numberformat(261961.5,0)=#numberformat(261961.5,0)#</cfoutput><br/><cfoutput>numberformat(261961.6,0)=#numberformat(261961.6,0)#</cfoutput><br/><cfoutput>Round(961.5)=#Round(961.5)#</cfoutput><br/><cfoutput>Round(9.615*100)=#Round(9.615*100)#</cfoutput><br/><cfoutput>Round(1961.5)=#Round(1961.5)#</cfoutput><br/><cfoutput>Round(19.615*100)=#Round(19.615*100)#</cfoutput><br/><cfoutput>Round(21961.5)=#Round(21961.5)#</cfoutput><br/><cfoutput>Round(219.615*100)=#Round(219.615*100)#</cfoutput><br/><cfoutput>Round(321961.5)=#Round(321961.5)#</cfoutput><br/><cfoutput>Round(3219.615*100)=#Round(3219.615*100)#</cfoutput><br/><cfoutput>Round(4321961.5)=#Round(4321961.5)#</cfoutput><br/><cfoutput>Round(43219.615*100)=#Round(43219.615*100)#</cfoutput><br/><cfset a=2619.615*100><cfoutput>a=2619.615*100=#a#</cfoutput><br/><cfoutput>round(a)=#round(a)#</cfoutput><br/><cfset b=261961.5><cfoutput>b=#b#</cfoutput><br/><cfoutput>round(b)=#round(b)#</cfoutput><br/>


结果

 

round(2619.615)=2620round(261961.4)=261961round(261961.5)=261962round(261961.6)=2619622619.615*100=261961.5round(2619.614*100)=261961round(2619.615*100)=261961round(2619.616*100)=261962round(2619.615*100)/100=2619.61numberformat(2619.615,0.00)=2619.62numberformat(2619.615*100,0.00)=261961.50numberformat(2619.614*100,0)=261961numberformat(2619.615*100,0)=261961numberformat(2619.616*100,0)=261962numberformat(261961.4,0)=261961numberformat(261961.5,0)=261962numberformat(261961.6,0)=261962Round(961.5)=962Round(9.615*100)=962Round(1961.5)=1962Round(19.615*100)=1961Round(21961.5)=21962Round(219.615*100)=21962Round(321961.5)=321962Round(3219.615*100)=321962Round(4321961.5)=4321962Round(43219.615*100)=4321962a=2619.615*100=261961.5round(a)=261961b=261961.5round(b)=261962

原因:估计是程序优化的结果。

解决方法:&一个空字符串,再让它自动转换类型

<cfoutput>round(2619.615*100)=#round(2619.615*100)#</cfoutput><br/><cfoutput>round(261961.5)=#round(261961.5)#</cfoutput><br/><cfoutput>round(2619.615*100 & "")=#round(2619.615*100 & "")#</cfoutput><br/>

结果

round(2619.615*100)=261961round(261961.5)=261962round(2619.615*100 & "")=261962


 


 

原创粉丝点击