Thinkphp中的大数值中英文互译,另附JS版本的number_format函数

      发布在:后端技术      评论:0 条评论

Thinkphp中的大数值中英文互译,另附JS版本的number_format函数

/**
* number_format
* @param number 传进来的数,
* @param bit 保留的小数位,默认保留两位小数,
* @param sign 为整数位间隔符号,默认为空格
* @param gapnum 为整数位每几位间隔,默认为3位一隔
* @type arguments的作用:arguments[0] == number(之一)
*/
function number_format(number,bit,sign,gapnum){
//设置接收参数的默认值
  var bit    = arguments[1] ? arguments[1] : 2 ;
var sign   = arguments[2] ? arguments[2] : ' ' ;
var gapnum = arguments[3] ? arguments[3] : 3 ;
var str    = '' ;

number     = number.toFixed(bit);//格式化
  realnum    = number.split('.')[0];//整数位(使用小数点分割整数和小数部分)
  decimal    = number.split('.')[1];//小数位
  realnumarr = realnum.split('');//将整数位逐位放进数组 ["1", "2", "3", "4", "5", "6"]

  //把整数部分从右往左拼接,每bit位添加一个sign符号
  for(var i=1;i<=realnumarr.length;i++){
str = realnumarr[realnumarr.length-i] + str ;
if(i%gapnum == 0){
str = sign+str;//每隔gapnum位前面加指定符号
     }
}

//当遇到 gapnum 的倍数的时候,会出现比如 ",123",这种情况,所以要去掉最前面的 sign
  str = (realnum.length%gapnum==0) ? str.substr(1) : str;
//重新拼接实数部分和小数位
  realnum = str+'.'+decimal;
return realnum;
}
if(data['info']['volume']){
<?php if(LANG_SET=='zh-cn'){ ?>

     if(data['info']['volume']>10000){
data['info']['volume']=(data['info']['volume']/10000).toFixed(2)+""
     }
if(data['info']['volume']>100000000){
data['info']['volume']=(data['info']['volume']/100000000).toFixed(2)+"亿"
     }
<?php }else{ ?>


     if(data['info']['volume']>1000000000000){
data['info']['volume']=number_format(data['info']['volume']/1000000000000,2,',')+" billion"
     }else if(data['info']['volume']>1000000){
data['info']['volume']=number_format(data['info']['volume']/1000000,2,',')+" million"
     }else{
data['info']['volume']=number_format(data['info']['volume'],2,',');
}
console.log(data['info']['volume']);

<?php } ?>


$("#market_volume").html(data['info']['volume']);


相关文章
热门推荐