我已经做了很多尝试来使它起作用。但是我发现的所有结果都以错误的数字四舍五入为结果-或用缩写字符碰到墙。
我想要的是一个可以给一个数字的函数,例如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
因此,后缀并非总是单个字母,它们可以是整个单词。
这可以动态地做吗?还是我必须对每个结果进行硬编码?
最佳答案
根据您提供的信息,我想到了this solution。它基于Number.prototype.toExponential
方法。
例:
console.log(abbreviate(1000000000000000000)); // 1quint
但是,您将不得不对其进行调整,以使其符合您对取整的需求。