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 + -
显示快捷键?