asp四舍五入实现统计百分比函数的差异
作者:瑞杰php培训 文章来源:IT学习网原创 发表时间:2008-07-03 13:10:21
阅读次数:今日:1 本周:1 本月:15 总计:4284
这几天给www.itstudy.cn写一个评分程序,捎带整理了asp四舍五入实现统计百分比方法的小文章。 
如何进行百分比的统计呢?也就是说: 
总投票数17人,赞同7人  7/17=0.411764705882353 
那么赞同的百分比精确到小数点2位就是41.18%。 

说起实现思路很简单,可以用asp的四舍五入函数取出数值然后乘以100不就OK了 
response.write Round(7/17*100,2) & "%" 
response.write FormatNumber(7/17*100,2) & "%" 

这里的Round函数 和FormatNumber函数可返回按指定位数进行四舍五入的数值(具体的参数大家尽可google一下,我这里不详说了),采用哪个合适呢?这需要说以下他们的区别,大家可以看示例 
Round(1.5) 
Round(2.5) 
Round(3.5) 
Round(4.5) 

FormatNumber(1.5,0) 
FormatNumber(2.5,0) 
FormatNumber(3.5,0) 
FormatNumber(4.5,0) 

Round的结果是: 





FormatNumber的结果是: 




嗯!好像不对?4.5和2.5的四舍五入结果有问题,难道是ASP的bug? 

原 来虽然Round函数叫做四舍五入函数准确说是是"四舍六入五逢双函数",与我们平常说四舍五入的并不一样,我们平时的是:大于等于5的数值入、小于5的 数值舍。但是,Round函数却是大于5的数值入、小于5的数值舍、等于5的的时候是根据前面数的奇偶来判断的,为奇数时进位,为偶数时舍位。这是金融中 的要求,因为四舍五入中1-4舍,5-9入,舍入概率比为4/5,并不平均,这在金融中是非常重要的,只有将5取最接近的偶数才能在概率上做到对等。 

    FormatNumber函数则是完全和我们平常理解的一样进行四舍五入,两个函数谈不上哪个更精确,关键看你想用在哪里 
了。 
    实际上我采用的是FormatPercent函数,这是因为FormatPercent函数对返回的值自动格式化为尾随有   %   符号的 
百分比(乘以   100   )。   
所以“response.write FormatNumber(7/17*100,2) & "%"”可以直接写成下面格式  
response.write FormatPercent(7/17,2) 

显然FormatPercent函数处理四舍五入实现统计百分比要比前两个函数方便的多 

关键字:Round函数,FormatNumber函数,FormatNumber函数
最后编辑时间:2008-07-03 13:10:21
上一篇: 配置第一个Struts2的简单登陆程序
下一篇: jsp用Statements和PreparedStatement防范sql注入