【问题标题】:Need to convert number to currency需要将数字转换为货币
【发布时间】:2019-02-21 10:57:45
【问题描述】:

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

【问题讨论】:

标签: javascript angular


【解决方案1】:

只需简化位数的计算:

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

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

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

希望这会有所帮助!

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 2014-12-31
  • 2022-12-03
  • 1970-01-01
相关资源
最近更新 更多