我已经多次尝试让它发挥作用。但是我发现的所有内容都以错误的数字舍入结束 - 或者用缩写字符撞墙。
我想要的是一个函数,我可以给出一个数字,比如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
所以后缀不是单个字母,它们可以是整个单词。
这可以动态做吗?或者我是否必须对每一个结果进行硬编码?
答案 0 :(得分:2)
根据您提供的信息,我想出了this solution。它基于Number.prototype.toExponential
方法。
示例:
console.log(abbreviate(1000000000000000000)); // 1quint
你必须调整它,以便它符合你对四舍五入的需要。