Hallo @ll
war lange nicht on board :-)
hab mal wieder eine funktion benötigt die ich nicht gefunden habe.
anbei ein wenig spass für euch.
hab es absichtlich übersichtlich gelassen da ich nicht sicher bin wo und wie weit man vereinfachen kann. (flash & flobee: lange ists her :-) )
gut für jene die verschiedene währungen besonders schön formatiert haben wollen :-) franzosen mit leerzeichen, deutsche mit punkten, amis mit kommas...
hoffe sind keine fehler drin (!?)
kann natürlich auch als prototyp gemacht werden allerdings werden die benutzer wohl über das "undefind" stolpern wenn die zu wandelne zahl bei Number.prototype als string rein kommt :-(
PHP-Code:
// +--------------------------------------------------------------------------------+
// | PHP number_format to flash 5, MX, 2004 ++ |
// | written by flobee for FloWorks Company |
// +--------------------------------------------------------------------------------+
// | number_format(floatnum[,int decimals[,string dec_point,string thousands_sep]]) |
// +--------------------------------------------------------------------------------+
//
number_format = function(floatnum, decimals, float_sep, thousands_sep) {
floatnum = parseFloat(floatnum);
if (floatnum >= 0 ) {
floatnum = floatnum.toString();
parts = floatnum.split('.');
mystring = '';
len = parts[0].length;
for(i=len;i>0;i--) {
if(i % 3 == 0 && i>0 && i<len) {
mystring += thousands_sep + parts[0].charAt(len-i);
} else {
mystring += parts[0].charAt(len-i);
}
}
if(parts[1] || decimals > 1) {
if(!parts[1]) {
adding='';
} else {
adding = parts[1];
}
len = adding.length;
if (decimals > len) {
for(i=0;i<(decimals-len);i++) {
adding += '0';
}
} else {
adding = adding.substr(0, decimals)
}
mystring += float_sep + adding;
}
return mystring;
} else {
return 'No number found to work with';
}
}
// tests
mynumber = '123456789';
trace('int result: '+number_format(mynumber, 3, ',', '.'));
// returns crap you need a technical number
mynumber = '12345678,987654321';
trace('crap result: '+number_format(mynumber, 3, ',', '.'));
mynumber = 12345678.987654321;
trace('float result: '+number_format(mynumber, 3, ',', '.'));
mynumber = 12345678.98;
trace('float result: '+number_format(mynumber, 5, ',', '.'));
mynumber = 0;
trace('float result: '+number_format(mynumber, 2, ',', '.'));
mynumber = '12345';
trace('in frensh: '+number_format(mynumber, 2, ',', ' '));
mynumber = '12345';
trace('in usa: '+number_format(mynumber, 2, '.', ','));
mynumber = '12345';
trace('in german: '+number_format(mynumber, 2, ',', '.'));