Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [JavaScript] dodawanie i odejmowanie -> wyswietlanie w formacie 0,00
Forum PHP.pl > Forum > Przedszkole
agataperz
Witam,

mam taki skrypcik:
  1. function float_val(v) {
  2. v = parseFloat(String(v).replace(',', '.'))
  3. return isNaN(v) ? 0 : v
  4. }
  5.  
  6. function zlicz(e) {
  7. var f=document.forms[0]
  8. f.kasaasuma.value = float_val(f.kasaa200.value) * 200 + float_val(f.kasaa001.value) *0.01 + float_val(f.kasaa002.value) *0.02 + float_val(f.kasaa005.value) *0.05 + float_val(f.kasaa010.value) *0.1 + float_val(f.kasaa020.value) * 0.2 + float_val(f.kasaa050.value) * 0.5 + float_val(f.kasaa1.value) *1 + float_val(f.kasaa2.value) *2 + float_val(f.kasaa5.value) *5 + float_val(f.kasaa10.value) *10 + float_val(f.kasaa20.value) *20 + float_val(f.kasaa50.value) *50 + float_val(f.kasaa100.value) *100
  9. f.kasaasuma200.value = float_val(f.kasaa200.value) * 200
  10. f.kasaasuma100.value = float_val(f.kasaa100.value) * 100
  11. f.kasaasuma50.value = float_val(f.kasaa50.value) * 50
  12. f.kasaasuma20.value = float_val(f.kasaa20.value) * 20
  13. f.kasaasuma10.value = float_val(f.kasaa10.value) * 10
  14. f.kasaasuma5.value = float_val(f.kasaa5.value) * 5
  15. f.kasaasuma2.value = float_val(f.kasaa2.value) * 2
  16. f.kasaasuma1.value = float_val(f.kasaa1.value) * 1
  17. f.kasaasuma050.value = float_val(f.kasaa050.value) * 0.5
  18. f.kasaasuma020.value = float_val(f.kasaa020.value) * 0.2
  19. f.kasaasuma010.value = float_val(f.kasaa010.value) * 0.1
  20. f.kasaasuma005.value = float_val(f.kasaa005.value) * 0.05
  21. f.kasaasuma002.value = float_val(f.kasaa002.value) * 0.02
  22. f.kasaasuma001.value = float_val(f.kasaa001.value) * 0.01
  23. f.kasabsuma.value = float_val(f.kasab200.value) * 200 + float_val(f.kasab001.value) *0.01 + float_val(f.kasab002.value) *0.02 + float_val(f.kasab005.value) *0.05 + float_val(f.kasab010.value) *0.1 + float_val(f.kasab020.value) * 0.2 + float_val(f.kasab050.value) * 0.5 + float_val(f.kasab1.value) *1 + float_val(f.kasab2.value) *2 + float_val(f.kasab5.value) *5 + float_val(f.kasab10.value) *10 + float_val(f.kasab20.value) *20 + float_val(f.kasab50.value) *50 + float_val(f.kasab100.value) *100
  24. f.kasabsuma200.value = float_val(f.kasab200.value) * 200
  25. f.kasabsuma100.value = float_val(f.kasab100.value) * 100
  26. f.kasabsuma50.value = float_val(f.kasab50.value) * 50
  27. f.kasabsuma20.value = float_val(f.kasab20.value) * 20
  28. f.kasabsuma10.value = float_val(f.kasab10.value) * 10
  29. f.kasabsuma5.value = float_val(f.kasab5.value) * 5
  30. f.kasabsuma2.value = float_val(f.kasab2.value) * 2
  31. f.kasabsuma1.value = float_val(f.kasab1.value) * 1
  32. f.kasabsuma050.value = float_val(f.kasab050.value) * 0.5
  33. f.kasabsuma020.value = float_val(f.kasab020.value) * 0.2
  34. f.kasabsuma010.value = float_val(f.kasab010.value) * 0.1
  35. f.kasabsuma005.value = float_val(f.kasab005.value) * 0.05
  36. f.kasabsuma002.value = float_val(f.kasab002.value) * 0.02
  37. f.kasabsuma001.value = float_val(f.kasab001.value) * 0.01
  38.  
  39. f.utargsuma.value = float_val(f.utargkasa.value) + float_val(f.utarglvm.value) + float_val(f.utargloo.value) + float_val(f.utargria.value) - float_val(f.platnosckarta.value) - float_val(f.platnoscpayback.value) + float_val(f.poczatek.value)
  40.  
  41. f.suma.value = float_val(f.kasabsuma.value) + float_val(f.kasaasuma.value) - f.utargsuma.value - 400
  42.  
  43. }
  44. </script>


i niestety nie wiem jak zrobić aby zmienne wyświetlanie były w formacie np. 1 000,00 czyli odpowiednik number_format($wartosc, 2, ',', ' ') w php

znalazlam u wujka google taka funkcje:

  1. function number_format (number, decimals, dec_point, thousands_sep) {
  2. // <a href="http://kevin.vanzonneveld.net" target="_blank">http://kevin.vanzonneveld.net</a>
  3. // + original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
  4. // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  5. // + bugfix by: Michael White (http://getsprink.com)
  6. // + bugfix by: Benjamin Lupton
  7. // + bugfix by: Allan Jensen (http://www.winternet.no)
  8. // + revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
  9. // + bugfix by: Howard Yeend
  10. // + revised by: Luke Smith (http://lucassmith.name)
  11. // + bugfix by: Diogo Resende
  12. // + bugfix by: Rival
  13. // + input by: Kheang Hok Chin (http://www.distantia.ca/)
  14. // + improved by: davook
  15. // + improved by: Brett Zamir (http://brett-zamir.me)
  16. // + input by: Jay Klehr
  17. // + improved by: Brett Zamir (http://brett-zamir.me)
  18. // + input by: Amir Habibi (http://www.residence-mixte.com/)
  19. // + bugfix by: Brett Zamir (http://brett-zamir.me)
  20. // + improved by: Theriault
  21. // + input by: Amirouche
  22. // + improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
  23. // * example 1: number_format(1234.56);
  24. // * returns 1: '1,235'
  25. // * example 2: number_format(1234.56, 2, ',', ' ');
  26. // * returns 2: '1 234,56'
  27. // * example 3: number_format(1234.5678, 2, '.', '');
  28. // * returns 3: '1234.57'
  29. // * example 4: number_format(67, 2, ',', '.');
  30. // * returns 4: '67,00'
  31. // * example 5: number_format(1000);
  32. // * returns 5: '1,000'
  33. // * example 6: number_format(67.311, 2);
  34. // * returns 6: '67.31'
  35. // * example 7: number_format(1000.55, 1);
  36. // * returns 7: '1,000.6'
  37. // * example 8: number_format(67000, 5, ',', '.');
  38. // * returns 8: '67.000,00000'
  39. // * example 9: number_format(0.9, 0);
  40. // * returns 9: '1'
  41. // * example 10: number_format('1.20', 2);
  42. // * returns 10: '1.20'
  43. // * example 11: number_format('1.20', 4);
  44. // * returns 11: '1.2000'
  45. // * example 12: number_format('1.2000', 3);
  46. // * returns 12: '1.200'
  47. // * example 13: number_format('1 000,50', 2, '.', ' ');
  48. // * returns 13: '100 050.00'
  49. // Strip all characters but numerical ones.
  50. number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
  51. var n = !isFinite(+number) ? 0 : +number,
  52. prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
  53. sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
  54. dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
  55. s = '',
  56. toFixedFix = function (n, prec) {
  57. var k = Math.pow(10, prec);
  58. return '' + Math.round(n * k) / k;
  59. };
  60. // Fix for IE parseFloat(0.55).toFixed(0) = 0;
  61. s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
  62. if (s[0].length > 3) {
  63. s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
  64. }
  65. if ((s[1] || '').length < prec) {
  66. s[1] = s[1] || '';
  67. s[1] += new Array(prec - s[1].length + 1).join('0');
  68. }
  69. return s.join(dec);
  70. }


niestety nie wiem jak polaczyc to wszystko razem. Możecie mnie jakoś nakierować
_Borys_
Przekazujesz wynik swoich obliczeń do funkcji number_format i tyle, example 13 chyba jest tym czego szukasz, tylko zamiast kropki przecinek
Przykład na twoich ostatnich obliczeniach
[JAVASCRIPT] pobierz, plaintext
  1. //...
  2. var ff = float_val(f.kasabsuma.value) + float_val(f.kasaasuma.value) - f.utargsuma.value - 400;
  3. f.suma.value = number_format(ff, 2, ',', ' ');
[JAVASCRIPT] pobierz, plaintext
agataperz
Dzieki.

działa
kropamk
chyba można prościej -> http://jsfiddle.net/HTbKp/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.