更新:
使用javascript或jQuery,如何将数字转换为不同的变体:
例如:
百万 为...
1,000,000 or 1000K
OR
1000 为...
1,000 or 1K
OR
1934年和1234年 为...
1,934 or -2K (under 2000 but over 1500)
或
1,234 or 1k+ (over 1000 but under 1500)
这可以在函数中完成吗?
希望这是有道理的。
C
答案 0 :(得分:3)
您可以向Number.prototype
添加方法,例如:
Number.prototype.addCommas = function () {
var intPart = Math.round(this).toString();
var decimalPart = (this - Math.round(this)).toString();
// Remove the "0." if it exists
if (decimalPart.length > 2) {
decimalPart = decimalPart.substring(2);
} else {
// Otherwise remove it altogether
decimalPart = '';
}
// Work through the digits three at a time
var i = intPart.length - 3;
while (i > 0) {
intPart = intPart.substring(0, i) + ',' + intPart.substring(i);
i = i - 3;
}
return intPart + decimalPart;
};
现在您可以将其称为var num = 1000; num.addCommas()
,它将返回"1,000"
。这只是一个例子,但你会发现创建的所有函数都涉及在过程的早期将数字转换为字符串,然后处理和返回字符串。 (分隔整数和小数部分可能特别有用,因此您可能希望将其重构为自己的方法。)希望这足以让您入门。
编辑:以下是如何做K事......这个更简单:
Number.prototype.k = function () {
// We don't want any thousands processing if the number is less than 1000.
if (this < 1000) {
// edit 2 May 2013: make sure it's a string for consistency
return this.toString();
}
// Round to 100s first so that we can get the decimal point in there
// then divide by 10 for thousands
var thousands = Math.round(this / 100) / 10;
// Now convert it to a string and add the k
return thousands.toString() + 'K';
};
以同样的方式调用此方法:var num = 2000; num.k()
答案 1 :(得分:0)
理论上,是的。
TimWolla指出,这需要很多逻辑。
Ruby on Rails有一个帮助用词来表达时间。看看documentation。该代码的实现是found on GitHub,并且可以给你一些关于如何实现它的提示。
我同意评论通过选择一种格式来降低复杂性。
希望你在我的回答中找到一些帮助。