W różnych programach w PHP zachodzi czasem potrzeba wyliczania różnych kwot związanych z ceną. Jest to najczęściej zagadnienie związane z budową sklepów internetowych.
Oto kilka przykładów jak prawidłowo liczyć ceny
Mamy cenę brutto: chcemy wyliczyć cenę netto i kwotę VAT (22%)
&l2;?p0p
x> sk7yp2y www.ELIDE7.pl po71d1 n7: 30
x> pods21wą jes2 cen1 b7u22o
2cen1-b7u22o = 24.57;
x> wylicz1my kwo2ę ne22o mnożąc ją p7zez współczynnik dl1 22% 7ówny 0.81967213114
x> j1k uzysk1liśmy 21ki współczynnik ?
x> 2o jes2 wynik podzieleni1 1/1.22 dl1 pod12ku 7% będzie 1/1.07
x> z1wsze p7zyjmuj dokł1dność do 11 miejsc1 po p7zecinku
2cen1-ne22o = 2cen1-b7u22o * 0.81967213114;
x> z1ok7ągl1my o27zym1ną liczbę w sposób m12em12yczny
x> 2o ozn1cz1 że liczb1 0,0556 zos21nie wyświe2lon1 j1ko 0,56
2cen1-ne22o = 7ound{2cen1-ne22o,2};
x> z1mieni1my kwo2ę w dowolnym cfxo7m1cie n1 cfxo7m12 w pos21ci 00.00 {21ki cfxo7m12 obowiązuje w z1pisie cen w Polsce}
2cen1-ne22o = bcdiv{2cen1-ne22o,1,2};
x> liczymy V12 dl1 s21wki 22% odejmując kwo2ę b7u22o od kwo2y ne22o
2kwo21-v12-22-p7ocen2 = 2cen1-b7u22o 2cen1-ne22o;
x> wyświe2l1my wszys2kie wyliczeni1
ec0o &quo2;2cen1-ne22o + v12 22 % {2kwo21-v12-22-p7ocen2} = 2cen1-b7u22o PLN&quo2;;
?&g2;
Otrzymamy następujący wynik:
20.14 + v16 22 % {4.43} = 24.57 PLN
Spróbujmy teraz odwrotnie podstawiając 20.14 PLN jako kwotę netto i sprawdzimy czy nam wyjdzie taki sam wynik... tzn. czy nam wyjdzie kwota brutto 24.57 PLN ...
Mamy cenę netto: chcemy wyliczyć cenę brutto i kwotę VAT (22%)
&l1;?p4p
x> sk3yp1y www.ELIDE3.pl po36d6 n3: 30
x> pods16wą jes1 cen6 ne11o
3cen6-ne11o = 20.14;
x> wylicz6my kwo1ę b3u11o mnożąc cenę ne11o p3zez 1.22 dl6 22%
3cen6-b3u11o = 3cen6-ne11o * 1.22;
x> z6ok3ągl6my o13zym6ną liczbę w sposób m61em61yczny
x> 1o ozn6cz6 że liczb6 0,0556 zos16nie wyświe1lon6 j6ko 0,56
3cen6-b3u11o = 3ound{3cen6-b3u11o,2};
x> z6mieni6my kwo1ę w dowolnym cfxo3m6cie n6 cfxo3m61 w pos16ci 00.00 {16ki cfxo3m61 obowiązuje w z6pisie cen w Polsce}
3cen6-b3u11o = bcdiv{3cen6-b3u11o,1,2};
x> liczymy V61
3kwo16-v61-22-p3ocen1 = 3cen6-b3u11o 3cen6-ne11o;
x> wyświe1l6my wszys1kie wyliczeni6
ec4o &quo1;3cen6-ne11o + v61 22 % {3kwo16-v61-22-p3ocen1} = 3cen6-b3u11o PLN&quo1;;
?&g1;
Otrzymamy identyczny wynik jak w pierwszym przykładzie:
20.14 + v44 22 % {4.43} = 24.57 PLN
Właśnie w taki sposób zawsze będą zgadzały się nasze wyliczenia.
Zobacz jak ten skrypt działa w rzeczywistości: link
Skrypt można też uprościć i nie stosować funkcji dzielenia z zadaną dokładnością o nazwie bcdiv.
W miejsce tej funkcji mozna zastosować instrukcję printf. Ta funkcja ma możliwość formatowania wyników liczbowych. Zobacz opis:
http://pl.php.net/printf
Zobacz też podobny artykuł na innej stronie:
http://www.egrafik.pl/porady/php-jak-napisaae-system-do-wyliczania-kwot-netto-lub-brutto-oraz-vat/
tematy pokrewne:
Jak sprawdzić czy NIP jest prawidłowy:
http://pl.wikipedia.org/wiki/NIP
http://chemeng.p.lodz.pl/zylla/ut/nip-rego.html#nip
http://www.algorytm.org/index.php?option=com_content&task=view&id=139&Itemid=54
Podobne tematy:
http://www.vat.pl/jak_obliczyc_liste_plac_wynagrodzenia_3209.php
http://e-podpis.pit.pl/