gpt4 book ai didi

javascript - 有没有人知道格式化 "abbreviated"数字的好 JavaScript 片段?

转载 作者:行者123 更新时间:2023-11-28 13:59:03 25 4
gpt4 key购买 nike

key 缩写。例如,1m 代替 100000012k 代替 12000 等 - 很像 StackOverflow!

除了我尝试过的之外,我不确定还需要添加什么:

格式化数字缩写 javascript
格式化数字短 Ja​​vaScript

还有其他一些搜索和搜索结果,但没有运气。我觉得有人以前一定做过这件事,讨厌重新发明轮子之类的!

干杯

编辑:我想要一个数字,即 12345 并将其转换为 12k

抱歉我没说清楚!

最佳答案

这是我很久以前编写的一些代码,但它工作得很好。它甚至支持小数。

function is_numeric(string) {
for(var i = 0; i < string.length; i++) {
if(string.charAt(i) < '0' || string.charAt(i) > '9') {
return false;
}
}
return true;
}

function charValueMultiplier(letter) {
switch(letter) {
case 'M':
case 'm': return 1000000;
case 'k':
case 'K': return 1000;
default: return 0;
}
}

// parse string like 1.5M or 10k and return the number
function parseNumber(string) {
string = string.replace(/ /g, ''); // remove spaces
var total = 0;
var partial = 0;
var partialFraction = 0;
var fractionLength = 0;
var isFraction = false;

// process the string; update total if we find a unit character
for(var i = 0; i < string.length; i++) {
var c = string.substr(i, 1);
if(c == '.' || c == ',') {
isFraction = true;
}
else if(is_numeric(c)) {
if(isFraction) {
partialFraction = partialFraction * 10 + parseInt(c, 10);
fractionLength++;
}
else {
partial = partial * 10 + parseInt(c, 10);
}
}
else {
total += charValueMultiplier(c) * partial + charValueMultiplier(c) * partialFraction / Math.pow(10, fractionLength);

partial = 0;
partialFraction = 0;
fractionLength = 0;
isFraction = false;
}
}

return Math.round(total + partial + partialFraction / Math.pow(10, fractionLength));
}

关于javascript - 有没有人知道格式化 "abbreviated"数字的好 JavaScript 片段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6466418/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com