Javascript 始终使用3位数字和描述符显示数字
使用Javascript,我希望格式化一个数字,使其始终显示3位数字,以及它的正确标识符(例如:百万,千)。如果低于100000,则数字应仅显示“千”位数 所有数字都将是零以上的整数,最高的数字将达到万亿 我正在寻找的几个例子:Javascript 始终使用3位数字和描述符显示数字,javascript,formatting,number-formatting,Javascript,Formatting,Number Formatting,使用Javascript,我希望格式化一个数字,使其始终显示3位数字,以及它的正确标识符(例如:百万,千)。如果低于100000,则数字应仅显示“千”位数 所有数字都将是零以上的整数,最高的数字将达到万亿 我正在寻找的几个例子: 一千 一万三千 62.7万 285万 6790万 1.53亿 95.2亿 等等 我尝试过的所有解决方案最终都变成了意大利面代码,我希望有人能找到一个干净、智能的解决方案 编辑: 我最终使用了RobG解决方案的一部分,但我自己解决了具体问题。我还加了四舍五入 函数g
- 一千
- 一万三千
- 62.7万
- 285万
- 6790万
- 1.53亿
- 95.2亿
- 等等
”);
});代码>可能有更好的方法,但这会起作用: 函数getTextNums(编号){
if((数字/1000000)<1){
var n=number.toString();
var first3=n.子串(0,3);
console.log(前3+千);
}如果((数量/1000000000)<1,则为其他情况{
var n=number.toString();
var first3=n.子串(0,3);
console.log(前3+百万);
}如果((数字/10000000000)<1){
var n=number.toString();
var first3=n.子串(0,3);
console.log(前30+“十亿”);
}如果((数字/10000000000000)<1){
var n=number.toString();
var first3=n.子串(0,3);
console.log(前3+万亿);
}否则{
}
}
getTextNums(4533544433000)对于整数,您可以尝试将数字缩短到所需的位数,然后添加名称,例如
// For integers
function getNumberName(num) {
var numNames = ['','Thousand','Million','Billion'];
var num = num.toString()
var len = num.length - 1;
var pow = numNames[len/3 | 0];
return pow;
}
// For integers
function abbreviateNumber(num, places) {
places = places || 0;
var len = num.toString().length - 1;
var pow = len/3 | 0
return (num < 1000? num : num/Math.pow(10, pow*3)).toFixed(places);
}
function getNumberAbbr(num, places) {
return abbreviateNumber(num, places) + ' ' + getNumberName(num);
}
var nums = [0,1,12,123,1234,12345,123456,1234567,12345678,123456789,123e7]
nums.forEach(function(num) {
console.log(num + ' : ' + getNumberAbbr(num,1));
});
//用于整数
函数getNumberName(num){
var numNames=['','000','百万','十亿];
var num=num.toString()
var len=num.length-1;
var pow=numNames[len/3 | 0];
返回战俘;
}
//对于整数
函数编号(num,places){
地点=地点| | 0;
var len=num.toString().length-1;
var pow=len/3 | 0
返回(num<1000?num:num/Math.pow(10,pow*3)).toFixed(位置);
}
函数GetNumberAbr(num,places){
返回缩写数字(num,places)+''+getNumberName(num);
}
变量nums=[0,1,121231234412345123456123456712345678123456781234567889123E7]
nums.forEach(函数(num){
log(num+':'+getNumberAbbr(num,1));
});
上述内容并不完整。应该有一个限制,比如说超过1万亿,它将停止缩短数字。您应该能够根据数字的数量确定名称,并且名称在一个数组中,例如
namesArray[Math.floor(num.length/3)]
。
// For integers
function getNumberName(num) {
var numNames = ['','Thousand','Million','Billion'];
var num = num.toString()
var len = num.length - 1;
var pow = numNames[len/3 | 0];
return pow;
}
// For integers
function abbreviateNumber(num, places) {
places = places || 0;
var len = num.toString().length - 1;
var pow = len/3 | 0
return (num < 1000? num : num/Math.pow(10, pow*3)).toFixed(places);
}
function getNumberAbbr(num, places) {
return abbreviateNumber(num, places) + ' ' + getNumberName(num);
}
var nums = [0,1,12,123,1234,12345,123456,1234567,12345678,123456789,123e7]
nums.forEach(function(num) {
console.log(num + ' : ' + getNumberAbbr(num,1));
});