Javascript 需要将数字转换为货币
当前正在使用以下代码将数字转换为货币。唯一的问题是如果我有1000,它会给我1000,而我需要1k 目前的执行情况1000-1000 需要1000-1k 尝试了很多方法来完成它,但无法解决Javascript 需要将数字转换为货币,javascript,angular,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
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];
我从得到了这个解决方案,只需简化位数的计算:
// From:
var nbDigits = parseInt(Math.log(number)/Math.LN10);
// To:
var nbDigits1 = Math.log10(number);
这将为您提供位数,无舍入错误。它的1000美元的回报是1000美元
希望这有帮助 阅读此文:为什么不直接采取可能的重复?