⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 advancedmath.as

📁 支持分数约分/基本三角函数计算的AS3表达式解析类,可以将字符串中的算式解析为结果值.
💻 AS
字号:
//Class:AdvancedMath  Author:Swfdong  Date:2007-7-1package {	import Fraction;	public class AdvancedMath {		private static  var tResult:Fraction;		private static  var tNumber:Number=0;		function AdvancedMath() {		}		//加法		public static function plus(num1:Fraction,num2:Fraction):String {			tResult=new Fraction("1|1");			tNumber=lcm(num1.denominator,num2.denominator);			tResult.denominator=tNumber;			tResult.numerator=fix(num1.numerator*(tNumber/num1.denominator)+num2.numerator*(tNumber/num2.denominator));			return tResult.value;		}		//减法		public static function minus(num1:Fraction,num2:Fraction):String {			tResult=new Fraction("1|1");			tNumber=lcm(num1.denominator,num2.denominator);			tResult.denominator=tNumber;			tResult.numerator=fix(num1.numerator*(tNumber/num1.denominator)-num2.numerator*(tNumber/num2.denominator));			return tResult.value;		}		//乘法		public static function multiply(num1:Fraction,num2:Fraction):String {			tResult=new Fraction("1|1");			tResult.denominator=num1.denominator*num2.denominator;			tResult.numerator=fix(num1.numerator*num2.numerator);			return tResult.value;		}		//除法		public static function divide(num1:Fraction,num2:Fraction):String {			tResult=new Fraction("1|1");			tResult.denominator=num1.denominator*num2.numerator;			tResult.numerator=fix(num1.numerator*num2.denominator);			return tResult.value;		}		//乘方		public static function pow(num1:Fraction,num2:Fraction):String {			tResult=new Fraction("1|1");			tNumber=num2.numerator/num2.denominator;			tResult.denominator=Math.pow(num1.denominator,tNumber);			var tPow:Number=Math.pow(num1.numerator,tNumber);			tResult.numerator=fix(Math.pow(num1.numerator,tNumber));			return tResult.value;		}		//sin		public static function sin(num:Fraction):String {			return Math.sin(num.numerator / num.denominator / 180 * Math.PI);		}		//cos		public static function cos(num:Fraction):String {			return Math.cos(num.numerator / num.denominator / 180 * Math.PI);		}		//tan		public static function tan(num:Fraction):String {			return Math.tan(num.numerator / num.denominator / 180 * Math.PI);		}		//cot		public static function cot(num:Fraction):String {			return 1 / Math.tan(num.numerator / num.denominator / 180 * Math.PI);		}		//arcsin		public static function arcsin(num:Fraction):String {			return fix(Math.asin(num.numerator / num.denominator * 180 / Math.PI));		}		//arccos		public static function arccos(num:Fraction):String {			return fix(Math.acos(num.numerator / num.denominator * 180 / Math.PI));		}		//arctan		public static function arctan(num:Fraction):String {			return fix(Math.atan(num.numerator / num.denominator * 180 / Math.PI));		}		//最小公倍数		public static function lcm(num1:Number,num2:Number):Number {			var min:Number=Math.min(Math.abs(num1),Math.abs(num2));			var max:Number=Math.max(Math.abs(num1),Math.abs(num2));			for (var i:Number = 1; i<Infinity; i++) {				if ((min*i)%max == 0 ) {					return min * i * num1 / num2 / Math.abs(num1 / num2);				}			}		}		//最大公约数		public static function gcd(num1:Number,num2:Number):Number {			var min:Number=Math.min(Math.abs(num1),Math.abs(num2));			var max:Number=Math.max(Math.abs(num1),Math.abs(num2));			for (var i:Number =min; i>-Infinity; i--) {				if (min%i == 0 &&max%i==0) {					return i * num1 / num2 / Math.abs(num1 / num2);				}			}		}		//保留有效位数		public static function fix(num:Number):Number {			var tNum:Number=Math.abs(num%1);			tNumber=(tNum>0.0000000001)?num:Math.round(num);			tNumber=(1-tNum>0.0000000001)?tNumber:Math.round(num);			return tNumber;		}	}}

⌨️ 快捷键说明

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