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的结果是:
2
2
4
4
FormatNumber的结果是:
2
3
4
5
嗯!好像不对?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函数处理四舍五入实现统计百分比要比前两个函数方便的多