2017-09-25 29 views
0

我在a,b,c,c, d中有以下类型的值。javascript中格式化数字不使用minimumFractionDigits,maximumFractionDigits

a= 12345678 
b= 12345678.098 
c=12345678.1 
d=12345678.11 

我需要格式化一样,

a = 12,345,678.000 
b= 12,345,678.098 
c=12,345,678.100 
d=12,345,678.110 

我已经尝试过tolocaleString()toFixed(3)方法。但我无法同时使用这两种方法。

需要你对此的建议。

+0

你不需要任何格式的数字,数字不能被JS格式化。如果你需要“格式化数字”,唯一的机会是将数字转换为字符串,并格式化这些字符串。 – Teemu

+0

https://stackoverflow.com/questions/46401854/formatting-number-in-javascript-using-decimal/46401920#46401920 –

+1

这可能有所帮助:https://stackoverflow.com/questions/149055/how-can-i -format号码-AS-美元货币串式的JavaScript – Rajesh

回答

1

这可能对你有所帮助。

var a = 12345678; 
 
var b = 12345678.098; 
 
var c = 12345678.1; 
 
var d = 12345678.11; 
 

 
String.prototype.format = function() { 
 
    return this.replace(/(\d)(?=(\d{3})+(?!\d))/g, "$1,"); 
 
}; 
 

 
function formatNumber(input) { 
 
    return parseFloat(input).toFixed(3).toString().format(); 
 
} 
 

 
console.log(formatNumber(a)); 
 
console.log(formatNumber(b)); 
 
console.log(formatNumber(c)); 
 
console.log(formatNumber(d));