如何识别整数值为数千,数百或数十?

Oki*_*ldi 2 javascript integer function

我要处理几个数字,假设我的数字是:
14000、32100、510、2100和10000
那么,如何使这些数字在javascript中识别为数千或数百?
有什么功能吗?

Ald*_*ven 7

试试这个:

var number = 5300;

function NumberName(number)
{
    switch (number.toString().length)
    {
    case 3:
         return "hundreds";
    case 4:
        return "thousands";
    }
}
Run Code Online (Sandbox Code Playgroud)


jon*_*o45 5

使用对数。以10为底的对数(如果可用),或者通过ln(n)/ ln(10)从自然对数(ln)来以10为底的对数。像这样:

var log10=function(n){return Math.log(n)/Math.log(10);};
log10(100);    //2
log10(10000);  //4
log10(1000000);//6, uh actually 5.999999999999999
Run Code Online (Sandbox Code Playgroud)

由于缺乏精度,可能需要舍入结果。舍入版本:

function log10(n){
  return Math.round(100*Math.log(n)/Math.log(10))/100;
}
[10,100,1000,10000,100000,1000000].map(log10);

/*
1,2,3,4,5,6
*/
Run Code Online (Sandbox Code Playgroud)

如果性能存在问题,还应该缓存Math.log(10)结果;