数值静态方法

package util
{
 public class NumberUtil
 {
  /**
   *四舍五入
   * @param nNumber 要四舍五入的数字
   * @param nRoundToInterval 四舍五入的精度 比如0.1
   * @return
   *
   */  
  public static function round(nNumber:Number, nRoundToInterval:Number = 1):Number {
   return Math.round(nNumber / nRoundToInterval) * nRoundToInterval;
  }
  /**
   *向下取整到精度
   * @param nNumber
   * @param nRoundToInterval 精度 比如0.1
   * @return
   *
   */  
  public static function floor(nNumber:Number, nRoundToInterval:Number = 1):Number {
   return Math.floor(nNumber / nRoundToInterval) * nRoundToInterval;
  }
  /**
   *向上取整到精度
   * @param nNumber
   * @param nRoundToInterval 精度 比如0.1
   * @return
   *
   */  
  public static function ceil(nNumber:Number, nRoundToInterval:Number = 1):Number {
   return Math.ceil(nNumber / nRoundToInterval) * nRoundToInterval;
  }
  /**
   *取范围内的随机数
   * @param nMinimum 随机最小值
   * @param nMaximum 随机最大值
   * @param nRoundToInterval 随机的精度
   * @return
   *
   */  
  public static function random(nMinimum:Number, nMaximum:Number = 0, nRoundToInterval:Number = 1):Number {
   
   // If the minimum is greater than the maximum, switch the two.
   if(nMinimum > nMaximum) {
    var nTemp:Number = nMinimum;
    nMinimum = nMaximum;
    nMaximum = nTemp;
   }
   var nDeltaRange:Number = (nMaximum - nMinimum) + (1 * nRoundToInterval);
   var nRandomNumber:Number = Math.random() * nDeltaRange;
   nRandomNumber += nMinimum;
   return floor(nRandomNumber, nRoundToInterval);
  }
  private static var _aUniqueIDs:Array;
  /**
   *创建一个唯一id
   * @return
   *
   */  
  public static function getUnique():Number {
   
   if(_aUniqueIDs == null) {
    _aUniqueIDs = new Array();
   }
   
   var dCurrent:Date = new Date();
   var nID:Number = dCurrent.getTime();
   //检查是否存在,防止同一秒创建
   while(!isUnique(nID)) {
    nID += random(dCurrent.getTime(), 2 * dCurrent.getTime());
   }
   
   _aUniqueIDs.push(nID);
   
   // Return the number.
   return nID; 
  }
  
  /**
   * 检查一个数组里是否存在一个数.
   *  @param  number            The number to compare.
   *  @return                   True or false
   */
  private static function isUnique(nNumber:Number):Boolean {
   for(var i:Number = 0; i < _aUniqueIDs.length; i++) {
    if(_aUniqueIDs[i] == nNumber) {
     return false;
    }
   }
   return true;
  }
 }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值