具有不同精度的缩写数字

时间:2014-08-26 09:35:30

标签: javascript numbers decimal abbreviation

我已经多次尝试让它发挥作用。但是我发现的所有内容都以错误的数字舍入结束 - 或者用缩写字符撞墙。

我想要的是一个函数,我可以给出一个数字,比如1234,它应该缩短为:1.23k。但精度可以根据数量的大小而变化。

所以我的问题是,我该如何编写这样的函数?

expected outcomes:
1 -> 1
9 -> 9
10 -> 10
100 -> 100
999 -> 999
1000 -> 1k
1001 -> 1k
1010 -> 1.01k
10100 -> 10.1k
1000000 -> 1m
1010000 -> 1.01m
10000000 -> 10m
1000000000000000 -> 1quad
1000000000000000000 -> 1quint

所以后缀不是单个字母,它们可以是整个单词。

这可以动态做吗?或者我是否必须对每一个结果进行硬编码?

1 个答案:

答案 0 :(得分:2)

根据您提供的信息,我想出了this solution。它基于Number.prototype.toExponential方法。

示例:

console.log(abbreviate(1000000000000000000)); // 1quint

你必须调整它,以便它符合你对四舍五入的需要。