当前使用以下代码将数字转换为货币。唯一的问题是,如果我有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 :(得分:1)
只需简化数字位数的计算即可
// From:
var nbDigits = parseInt(Math.log(number)/Math.LN10);
// To:
var nbDigits1 = Math.log10(number);
这将为您提供位数,而不会四舍五入。它确实为$1.00 K.
返回了1000
。
希望这会有所帮助!