Witam,

Widzieliście gdzieś funkcję która mi zamieni int`a na string`a :
np.

in: 5 125 125
out: 5 mln 125 tys

in: 2 521 525 125
out: 2 mld 521 mln 525 tys

Szukałem w sieci ale nie mogę znaleźć, jak mam napisać to wolę się upewnić, że czegoś takiego nie ma.

[JAVASCRIPT] pobierz, plaintext
  1. function pl_currency_format(n) {
  2. var str = '';
  3. var mld = 0;
  4. var mln = 0;
  5. var tys = 0;
  6.  
  7. if(n > 1000000000) {
  8. mld = Math.floor(n / 1000000000);
  9. n -= mld * 1000000000;
  10. }
  11.  
  12. if(n > 1000000) {
  13. mln = Math.floor(n / 1000000);
  14. n -= mln * 1000000;
  15. }
  16.  
  17. if(n > 1000) {
  18. tys = Math.floor(n / 1000);
  19. n -= tys * 1000;
  20. }
  21.  
  22. if(mld > 0)
  23. str += mld + ' mld ';
  24. if(mln > 0)
  25. str += mln + ' mln ';
  26. if(tys > 0)
  27. str += tys + ' tys';
  28.  
  29. if(mld === 0 && mln === 0 && tys === 0)
  30. str += number_format(n);
  31.  
  32. return str.trim();
  33. };
  34.  
  35. function number_format(number, decimals, dec_point, thousands_sep) {
  36. number = (number + '')
  37. .replace(/[^0-9+\-Ee.]/g, '');
  38. var n = !isFinite(+number) ? 0 : +number,
  39. prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
  40. sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
  41. dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
  42. s = '',
  43. toFixedFix = function (n, prec) {
  44. var k = Math.pow(10, prec);
  45. return '' + (Math.round(n * k) / k)
  46. .toFixed(prec);
  47. };
  48. // Fix for IE parseFloat(0.55).toFixed(0) = 0;
  49. s = (prec ? toFixedFix(n, prec) : '' + Math.round(n))
  50. .split('.');
  51. if (s[0].length > 3) {
  52. s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
  53. }
  54. if ((s[1] || '')
  55. .length < prec) {
  56. s[1] = s[1] || '';
  57. s[1] += new Array(prec - s[1].length + 1)
  58. .join('0');
  59. }
  60. return s.join(dec);
  61. }
[JAVASCRIPT] pobierz, plaintext


Napisałem - może komuś się przyda..