flash中保留小数位的方法
点击次数:23 次 发布日期:2008-11-21 23:32:56 作者:源代码网
|
源代码网推荐
flash中并没有内置的保存小数位的方法,但是当你想把如3.14159265354.这样的数据只保留两位数时怎么办, 下面的函数就可以解决这个问题.
/** * 数据计算方法保留小数位 * @author fanflash.cn * @version 0.1 * @num 源数值 * @n 保留的小数位 * @return 保留小数位后的数据 */ public static function decimal2(num:Number,n:Number):Number{ var ts:String="1"; var tn:Number=1; //计算要乘的位数 for(var i=0;i<n;i++){ ts+="0" } tn=Number(ts); return Math.round(num*tn)/tn }
这种方法是利用Math.round来进行截位的,把round换成floor或ceil还可以得到小数的上限值或下限值.另外还有一种我很早以前,还没有想到这种方法时用到的函数.
/** * 字符串切割方法保留小数位 * @author fanflash.cn * @version 0.1 * @num 源数值 * @n 保留的小数位 * @return 保留小数位后的数据 */ public static function decimal(num:Number,n:Number):Number{ //参数缺省值 if(n==undefined){ n=1; } var numStr:String=String(num) var numStrArr:Array=numStr.split("."); //实数与小数 var a:String=numStrArr[0]; var b:String=numStrArr[1]; //数据检查 if(b==undefined){ //没有小数位 return Number(a); } b=b.substr(0,n); return Number(a+"."+b) }
这方法如果要对小数位进行四舍五入的话,还要多写几行,实在麻烦的很,因此被我无情的打入冷宫了
源代码网供稿. |