RON*_*ONE 57 javascript php jquery
PHP功能:
function formatNumberForDisplay($number, $decimal=0, $decimalSeperator='.', $numberSeperator=',')
{
return number_format($number, $decimal, $decimalSeperator, $numberSeperator);
}
Run Code Online (Sandbox Code Playgroud)
我的需要:任何身体都可以建议我在jquery/javascript中的等效功能.
提前致谢.
Uma*_*mid 70
可以在此处找到js中相同的number_format
function number_format (number, decimals, dec_point, thousands_sep) {
// Strip all characters but numerical ones.
number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
var n = !isFinite(+number) ? 0 : +number,
prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
s = '',
toFixedFix = function (n, prec) {
var k = Math.pow(10, prec);
return '' + Math.round(n * k) / k;
};
// Fix for IE parseFloat(0.55).toFixed(0) = 0;
s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
if (s[0].length > 3) {
s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
}
if ((s[1] || '').length < prec) {
s[1] = s[1] || '';
s[1] += new Array(prec - s[1].length + 1).join('0');
}
return s.join(dec);
}
Run Code Online (Sandbox Code Playgroud)
MoV*_*Vod 40
这是你想要的吗?
yourFloatVarHere.toFixed(2);
Run Code Online (Sandbox Code Playgroud)
瞧.
Ahm*_*nas 29
只需toLocaleString在整数对象上使用.
let x = 1234567;
//if x is a string/non-number, use parseInt/parseFloat to convert to a number. Thanks @Aleksandr Kopelevich
x.toLocaleString('us', {minimumFractionDigits: 2, maximumFractionDigits: 2})
Run Code Online (Sandbox Code Playgroud)
Art*_*jev 11
原生"Intl"对象方法:
var amount = 5000.25;
var locale = 'de';
var options = {style: 'currency', currency: 'eur', minimumFractionDigits: 2, maximumFractionDigits: 2};
var formatter = new Intl.NumberFormat(locale, options);
console.log(formatter.format(amount));
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/arturrelax/sa9jL138/1/
更多信息,请访问:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl
Vas*_*las 11
我知道这是一个旧线程,但我创建了自己的函数,这是纯粹的Javascript.
https://gist.github.com/VassilisPallas/d73632e9de4794b7dd10b7408f7948e8
function number_format(number, decimals, dec_point, thousands_point) {
if (number == null || !isFinite(number)) {
throw new TypeError("number is not valid");
}
if (!decimals) {
var len = number.toString().split('.').length;
decimals = len > 1 ? len : 0;
}
if (!dec_point) {
dec_point = '.';
}
if (!thousands_point) {
thousands_point = ',';
}
number = parseFloat(number).toFixed(decimals);
number = number.replace(".", dec_point);
var splitNum = number.split(dec_point);
splitNum[0] = splitNum[0].replace(/\B(?=(\d{3})+(?!\d))/g, thousands_point);
number = splitNum.join(dec_point);
return number;
}
Run Code Online (Sandbox Code Playgroud)
https://jsfiddle.net/htyxfra9/2/
Mih*_*lan 10
更接近 php 的函数number_format($number)应该是number.toLocaleString('en')javascript
小智 5
这是另一个简短的解决方案,它的行为应该类似于 php 等效项。
function number_format(number,decimals,dec_point,thousands_sep) {
number = number*1;//makes sure `number` is numeric value
var str = number.toFixed(decimals?decimals:0).toString().split('.');
var parts = [];
for ( var i=str[0].length; i>0; i-=3 ) {
parts.unshift(str[0].substring(Math.max(0,i-3),i));
}
str[0] = parts.join(thousands_sep?thousands_sep:',');
return str.join(dec_point?dec_point:'.');
}
Run Code Online (Sandbox Code Playgroud)