Thursday, July 1, 2010

Return a % that a number is between 2 other numbers

/**
         * Returns a percentage of a value in between 2 other numbers.
         @param bottomRange  low end of the range.
         @param  topRange  top end of the range.
         @param  valueInRange value to find a range percentage of.
         @return The percentage of valueInRange in the range.
         *  @use getPercentWithinRange( 50, 150, 100 );  // displays 50
         */
        public static function getPercentWithinRangebottomRange:Number, 
                        topRange:Number, 
                        valueInRange:Number ):Number
        {
            // normalize values to work off zero
            if (bottomRange < 0)
            {
                var addToAll:Number = Math.abs(bottomRange);
                bottomRange +=  addToAll;
                topRange +=  addToAll;
                valueInRange +=  addToAll;
            }
            else if bottomRange > )
            {
                var subFromAll:Number = Math.abs(bottomRange);
                bottomRange -=  subFromAll;
                topRange -=  subFromAll;
                valueInRange -=  subFromAll;
            }
            // simple calc to get percentage 
            return 100 valueInRange / topRange - bottomRange ) );
        }


from Snipplr

No comments: