代码之家  ›  专栏  ›  技术社区  ›  Kartheek Sarabu

需要将数字转换为货币

  •  -3
  • Kartheek Sarabu  · 技术社区  · 6 年前

    当前正在使用以下代码将数字转换为货币。唯一的问题是如果我有1000,它给1000,而不是我需要1k。

    当前实施 1000 - 1000

    需要 1000 - 1k

    var number = 12345678910;
    
    var digits = 2;
    var suffix = ["", "K.", "M.", "B."];
    
    var nbDigits = parseInt(Math.log(number)/Math.LN10);
    var power = nbDigits - nbDigits%3;
    
    var tmp = number/ Math.pow(10, power);
    var suffixIndex = Math.min(3, power/3);
    
    var result = "$" + tmp.toFixed(digits) + " " + suffix[suffixIndex];
    

    我是从 this link

    0 回复  |  直到 6 年前
        1
  •  1
  •   Adi B    6 年前

    只需简化位数的计算:

    // From:
    var nbDigits = parseInt(Math.log(number)/Math.LN10);
    
    // To:
    var nbDigits1 = Math.log10(number);
    
    

    这将给你数字的数目,没有舍入误差。它确实回来了 $1.00 K. 对于 1000 .