1

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

我想要的是一个函数,我可以给出一个数字,比如 like 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

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

这可以动态执行吗?还是我必须对每一个结果进行硬编码?

4

1 回答 1

2

根据您提供的信息,我想出了这个解决方案。它基于Number.prototype.toExponential方法。

例子:

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

但是,您必须对其进行调整,以使其符合您对舍入的需求。

于 2014-08-26T09:56:14.907 回答