JavaScript 如何将长数字转换为缩写字符串
在本文中,我们需要一个长数字,并将其转换为缩写字符串(例如 1234 转换为 1.2k)。本文介绍了两种使用JavaScript可以实现的方法。
转换长数字为缩写字符串的方法:
- 使用JavaScript方法
- 使用自定义函数
方法1
- 将字符存入数组中(ar = [“”, “k”, “m”, “b”])
- 将数字长度除以3并将结果存入变量sNum中
- 如果sNum != 0,则将数字除以1000的sNum次方得到精确值
- 将数组中索引为sNum的字符附加到精确值上,得到缩写数字
示例1: 该示例实现了上述方法。
// Input number
let n = 123287342;
// Display input number
console.log(n);
// Function to convert number
function convert(val) {
// Thousands, millions, billions etc..
let s = ["", "k", "m", "b", "t"];
// Dividing the value by 3.
let sNum = Math.floor(("" + val).length / 3);
// Calculating the precised value.
let sVal = parseFloat(
(sNum != 0
? val / Math.pow(1000, sNum)
: val
).toPrecision(2)
);
if (sVal % 1 != 0) {
sVal = sVal.toFixed(1);
}
// Appending the letter to precised val.
return sVal + s[sNum];
}
// Function to show converted output
function GFG_Fun() {
// Display output
console.log("Number = " + convert(n));
}
GFG_Fun();
输出
123287342
Number = 0.1b
方法2
- 检查数字是否小于1e3,如果是,则将数字原样返回。
- 如果数字大于或等于1e3且小于1e6,则删除最后三位数字并将字符’K’附加到该数字上。
- 如果数字大于或等于1e6且小于1e9,则删除最后六位数字并将字符’M’附加到该数字上。
- 如果数字大于或等于1e9且小于1e12,则删除最后九位数字并将字符’B’附加到该数字上。
- 如果数字大于或等于1e12,则删除最后十二位数字并将字符’T’附加到该数字上。
示例2: 此示例实施了上述方法。
// Input number
let n = 1232873425;
// Display input number
console.log(n);
// Function to convert
let convert = (n) => {
if (n < 1e3) return n;
if (n >= 1e3 && n < 1e6)
return +(n / 1e3).toFixed(1) + "K";
if (n >= 1e6 && n < 1e9)
return +(n / 1e6).toFixed(1) + "M";
if (n >= 1e9 && n < 1e12)
return +(n / 1e9).toFixed(1) + "B";
if (n >= 1e12) return +(n / 1e12).toFixed(1) + "T";
};
// Function to display converted output
function GFG_Fun() {
// Display output
console.log("Number = " + convert(n));
}
// Funcion call
GFG_Fun();
输出
1232873425
Number = 1.2B