Oki*_*ldi 2 javascript integer function
我要处理几个数字,假设我的数字是:
14000、32100、510、2100和10000
那么,如何使这些数字在javascript中识别为数千或数百?
有什么功能吗?
试试这个:
var number = 5300;
function NumberName(number)
{
switch (number.toString().length)
{
case 3:
return "hundreds";
case 4:
return "thousands";
}
}
Run Code Online (Sandbox Code Playgroud)
使用对数。以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)结果;