小编Lau*_*elB的帖子

在JavaScript中将长数字转换为缩写字符串,具有特殊的短缺要求

在JavaScript中,如何编写一个函数将给定的[编辑:正整数 ]数字(低于1000亿)转换为3个字母的缩写 - 其中0-9和az/AZ计为字母,但是点(因为它在许多比例字体中如此微小)不会,并且在字母限制方面会被忽略?

这个问题与这个有用的线程有关,但它不一样; 例如,那个函数将转向例如"123456 - > 1.23k"("123.5k"是5个字母)我正在寻找做"123456 - > 0.1m"("0 [.] 1m"为3个字母的东西).例如,这将是希望函数的输出(左原始,右理想返回值):

0                      "0"
12                    "12"
123                  "123"
1234                "1.2k"
12345                "12k"
123456              "0.1m"
1234567             "1.2m"
12345678             "12m"
123456789           "0.1b"
1234567899          "1.2b"
12345678999          "12b"
Run Code Online (Sandbox Code Playgroud)

谢谢!

更新:谢谢!在做出以下修改时,答案在于并按照要求运作:

function abbreviateNumber(value) {
    var newValue = value;
    if (value >= 1000) {
        var suffixes = ["", "k", "m", "b","t"];
        var suffixNum = Math.floor( (""+value).length/3 );
        var shortValue = '';
        for (var precision = 2; precision >= 1; precision--) { …
Run Code Online (Sandbox Code Playgroud)

javascript numbers

59
推荐指数
8
解决办法
3万
查看次数

标签 统计

javascript ×1

numbers ×1