关闭。此问题不符合堆栈溢出准则。它目前不接受答案。
<hr class=“my12大纲无baw0 bb bc-POWER-400”/
想改进此问题吗?更新问题,使其成为堆栈溢出的主题。
在7年前关闭
改进这个问题
就像Stackoverlow的声誉四舍五入一样,我希望对货币也能做同样的事情
1000美元=>1k
1000000美元=>100万美元
如何在JavaScript中实现这一点(最好是在jQuery中)
下面是一个简单的函数:
函数缩写(数字、小数点){
//小数点后2位=>;100,3位=>;1000等
deplaces=数学功率(10,deplaces);
//列举数字缩写
var abbrev=[“k”、“m”、“b”、“t”];
//向后遍历数组,因此我们首先执行最大值
对于(变量i=abbrev.length-1;i>;=0;i--){
//将数组索引转换为“1000”、“1000000”等
变量大小=数学功率(10,(i+1)*3);
//如果数字较大或相等,请使用缩写
if(尺寸<;=数量){
//在这里,我们乘以小数点,取整,然后除以小数点。
//这使我们可以很好地四舍五入到一个特定的小数位。
数字=数学四舍五入(数字*小数位数/大小)/小数位数;
//处理特殊情况,在这种情况下,我们将汇总到下一个缩写
如果((数字==1000)和(i<;缩写长度-1)){
数字=1;
i++;
}
//为缩写添加字母
数字+=缩写[i];
//我们完了…停
打破
}
}
返回号码;
}
产出:
缩写(12,1)=>;12
abbrNum(0,2)=>;0
abbrNum(1234,0)=>;1k
abbrNum(34567,2)=>;34.57k
阿伯努姆(918395,1)=>;918.4k
abbrNum(2134124,2)=>;2.13米
abbrNum(475782130,2)=>;47.48b
演示:http://jsfiddle.net/jtbowden/SbqKL/