Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 需要将数字转换为货币_Javascript_Angular - Fatal编程技术网

Javascript 需要将数字转换为货币

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

当前正在使用以下代码将数字转换为货币。唯一的问题是如果我有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];

我从

得到了这个解决方案,只需简化位数的计算:

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

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

这将为您提供位数,无舍入错误。它的1000美元的回报是1000美元

希望这有帮助

阅读此文:为什么不直接采取可能的重复?