有没有办法把数字四舍五入成一种便于阅读的格式?(例如$1.1k)[已关闭]

关闭。此问题不符合堆栈溢出准则。它目前不接受答案。

<hr class=“my12大纲无baw0 bb bc-POWER-400”/

想改进此问题吗?更新问题,使其成为堆栈溢出的主题。

在7年前关闭

改进这个问题

就像Stackoverlow的声誉四舍五入一样,我希望对货币也能做同样的事情

1000美元=>1k

1000000美元=>100万美元

如何在JavaScript中实现这一点(最好是在jQuery中)

下面是一个简单的函数:

函数缩写(数字、小数点){
//小数点后2位=&gt;100,3位=&gt;1000等
deplaces=数学功率(10,deplaces);
//列举数字缩写
var abbrev=[“k”、“m”、“b”、“t”];
//向后遍历数组,因此我们首先执行最大值
对于(变量i=abbrev.length-1;i&gt;=0;i--){
//将数组索引转换为“1000”、“1000000”等
变量大小=数学功率(10,(i+1)*3);
//如果数字较大或相等,请使用缩写
if(尺寸&lt;=数量){
//在这里,我们乘以小数点,取整,然后除以小数点。
//这使我们可以很好地四舍五入到一个特定的小数位。
数字=数学四舍五入(数字*小数位数/大小)/小数位数;
//处理特殊情况,在这种情况下,我们将汇总到下一个缩写
如果((数字==1000)和(i&lt;缩写长度-1)){
数字=1;
i++;
}
//为缩写添加字母
数字+=缩写[i];
//我们完了…停
打破
}
}
返回号码;
}

产出:

缩写(12,1)=&gt;12
abbrNum(0,2)=&gt;0
abbrNum(1234,0)=&gt;1k
abbrNum(34567,2)=&gt;34.57k
阿伯努姆(918395,1)=&gt;918.4k
abbrNum(2134124,2)=&gt;2.13米
abbrNum(475782130,2)=&gt;47.48b

演示:http://jsfiddle.net/jtbowden/SbqKL/

发表评论