/**
 * OK
 * 数字类型的js函数，
 * 需要载入string.js
 */

var NumberUtil = {
	/**
	 * 判断是否是数字
	 * input:输入字符
	 * 姜敏
	 */
	isNumeric: function (input){
	  return (!StringUtil.isEmpty(input)&&!isNaN(input));
	},
	
	/**
	 * 判断是否为整数
	 * input:输入字符
	 * 姜敏
	 */
	isInt: function (input){
	  if(!NumberUtil.isNumeric(input)) return false;
	  return (!isNaN(parseInt(input,10)));
	},
	
	/**
	 * 判断是否为浮点数
	 * input:输入字符
	 * 姜敏
	 */
	isFloat: function (input){
	  if(!NumberUtil.isNumeric(input)) return false;
	  return (!isNaN(parseFloat(input,10)));
	},
	
	/**
	 * 转换Int型
	 * input:输入字符
	 * 姜敏
	 */
	toInt: function (input){
	  if(NumberUtil.isInt(input)){
	    return parseInt(input,10);
	  }
	  else{
	    return 0;
	  }
	},
	
	/**
	 * 转换Float型
	 * input:输入字符
	 * 姜敏
	 */
	toFloat: function (input){
	  if(NumberUtil.isFloat(input)){
	    return parseFloat(input,10);
	  }
	  else{
	    return 0;
	  }
	},


	/**
	* 格式化金额，
	* 格式￥12,345,678.00###
	* mark  标识符（￥）
	* money 金额参数
	* digit 小数位数, 默认值为2(可选)
	* 用法：formatMoney("",123456789) 小数位数为2
	*      formatMoney("",123456789, 4) 小数位数为4
	* 姜敏
	*/
	format: function (_money, mark, digit) {
		if(mark==null) mark="";
	  if (!NumberUtil.isNumeric(_money)) {
	    return mark + "0.00";
	  }
	
	  var pointLength = 2
	  if ((digit != null) && (NumberUtil.isNumeric(digit))) {
	    pointLength = parseInt(digit);
	  }
	
	  var money = parseFloat(_money, 10)
	  var minus = "";
	  if (money < 0) {
	    minus = "-";
	  }
	  money = Math.abs(money);
	  money = money.toFixed(pointLength);
	
	  var beforePoint;
	  var afterPoint;
	  if (pointLength > 0) {
	    beforePoint = money.substring(0, money.length - (pointLength + 1));
	    afterPoint = money.substring(money.length - (pointLength + 1), money.length);
	  } else {
	    beforePoint = money.substring(0, money.length);
	    afterPoint = "";
	  }
	  var tmp = "";
	  var returnStr = "";
	  while (beforePoint.length >= 4) {
	    tmp = "," + beforePoint.substring(beforePoint.length - 3, beforePoint.length);
	    returnStr = tmp + returnStr;
	    beforePoint = beforePoint.substring(0, beforePoint.length - 3);
	  }
	  returnStr = minus + mark + beforePoint + returnStr + afterPoint;
	  return returnStr;
	}
}

