需要将数字转换为货币

时间:2019-02-21 10:57:45

标签: javascript angular

当前使用以下代码将数字转换为货币。唯一的问题是,如果我有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那里得到了这个解决方案

1 个答案:

答案 0 :(得分:1)

只需简化数字位数的计算即可

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

// To:
var nbDigits1 = Math.log10(number);

这将为您提供位数,而不会四舍五入。它确实为$1.00 K.返回了1000

希望这会有所帮助!