Floating Number Calculation Test

by 9re
♥0 | Line 54 | Modified 2011-02-18 19:02:13 | MIT License
play

ActionScript3 source code

/**
 * Copyright 9re ( http://wonderfl.net/user/9re )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/kWeE
 */

package {
    import flash.utils.getTimer;
    import flash.events.Event;
    import flash.text.TextField;
    import flash.display.Sprite;
    public class FlashTest extends Sprite {
        public function FlashTest() {
            const MAX:int = 1<<24;
            var log:TextField = new TextField;
            log.width = 465;
            addChild(log);
            var tf:TextField = new TextField;
            tf.width = tf.height = 465;
            tf.y = 20;
            tf.multiline = true;
            tf.wordWrap = true;
            addChild(tf);
            var j:int, k:Number, len:int, d:int, l:int, n:int, i:int;
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
            
            function loop():void {
                for (n = 1; n < 7; ++n) {
                    var s:String;
                    j = n; k = i;
                    d = 1;
                    while (j--) {
                        d *= 10;
                    }
                    k /= d;
                    
                    s = k.toString();
                    len = s.length;
                    l = (i + '').length;
                    if ((k < 1 && (len > l + n + 1)) || (k > 1 && (len > l + 1))) {
                        tf.appendText(<>{i} {n} {k}</>+'\n');
                    }
                }
            }
            
            function onEnterFrame(event:Event):void {
                var t:int = getTimer();
                while (getTimer() - t < 10) {
                    if (++i == MAX) {
                        onComplete();
                        break;
                    }
                    log.text = i + ' : ' + ((i * 1000 / MAX)|0) / 10 + '% done';
                    loop();
                }
            }
            
            function onComplete():void {
                removeEventListener(Event.ENTER_FRAME, onEnterFrame);
                tf.appendText('complete');
            }
        }
    }
}