您现在的位置: 万盛学电脑网 >> 程序编程 >> 网络编程 >> java >> 正文

asp四舍五入实现统计百分比函数的差异

作者:佚名    责任编辑:admin    更新时间:2022-06-22

class="area"> 写一个评分程序,捎带整理了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函数处理四舍五入实现统计百分比要比前两个函数方便的多