fraction.as

来自「支持分数约分/基本三角函数计算的AS3表达式解析类,可以将字符串中的算式解析为结」· AS 代码 · 共 53 行

AS
53
字号
//Class:Fraction  Author:Swfdong  Date:2007-7-1package {	import AdvancedMath;	public class Fraction {		private var FRACTION_NUMERATOR:Number;		private var FRACTION_DENOMINATOR:Number;		function Fraction(str:String) {			var tIndex:Number=str.indexOf("|", 0);			if (tIndex!= -1&&tIndex!=0) {				FRACTION_NUMERATOR=parseFloat(str.substring(0,tIndex));				FRACTION_DENOMINATOR=parseInt(str.substring(tIndex+1,str.length));			} else {				FRACTION_NUMERATOR=parseFloat(str);				FRACTION_DENOMINATOR=1;			}			format();		}		//约分		private function reduction() {			if(parseInt(FRACTION_NUMERATOR)==parseFloat(FRACTION_NUMERATOR)&&FRACTION_NUMERATOR!=0){			var tNum:Number=AdvancedMath.gcd(FRACTION_NUMERATOR,FRACTION_DENOMINATOR);			FRACTION_NUMERATOR=AdvancedMath.fix(FRACTION_NUMERATOR/tNum);			FRACTION_DENOMINATOR=AdvancedMath.fix(FRACTION_DENOMINATOR/tNum);			}		}		//格式化(如果分母含有负数则将负号乘到分子上)		private function format() {			if(FRACTION_DENOMINATOR<0){			FRACTION_NUMERATOR=-FRACTION_NUMERATOR;			FRACTION_DENOMINATOR=-FRACTION_DENOMINATOR;			}		}		//分母		public function get denominator():Number {			return FRACTION_DENOMINATOR;		}		//分子		public function get numerator():Number {			return FRACTION_NUMERATOR;		}		public function set denominator(num:Number) {			FRACTION_DENOMINATOR=Math.round(num);		}		public function set numerator(num:Number) {			FRACTION_NUMERATOR=num;			reduction();			format();		}		public function get value():String {			return FRACTION_NUMERATOR + (FRACTION_DENOMINATOR!=1?"|" + FRACTION_DENOMINATOR:"");		}	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?