probleem met berekeningen in PHP
Ik weet niet of dit de goede plek is voor deze vraag, maar ik zit met dit probleem:
Ik heb een berekening, maar ik krijg zowel via de rekeningmachine op mijn telefoon als de uitkomst in PHP hetzelfde: 436.0768.
Het gaat om 0.0008 * 99^3 + 4 * 99 + 40.
Plak ik het in Google, dan komt er heel iets anders uit, 1212.2392, en dat moet ook aangegeven worden in PHP.
Ik zie dat Google () plaatst op de juiste plekken, maar als ik dit doe in PHP, dan klopt het nog steeds niet.
Dit heb ik:
Iemand enig idee wat er fout gaat, en hoe ik dit kan oplossen?
Alvast bedankt.
En wat nu als je de losse sommen tussen de haakjes apart berekent, en de uitkomst in een variabele opslaat?
1 haakkjes van binnen naar buiten
2 machten en worteltrekkingen
3 vermenigvuldigen en delen
4 optellen en aftrekken
- Ariën - op 15/02/2022 01:12:54:
En wat nu als je de losse sommen tussen de haakjes apart berekent, en de uitkomst in een variabele opslaat?
Kom ik op hetzelfde uit.
Toevoeging op 15/02/2022 09:11:31:
Jan R op 15/02/2022 06:10:02:
Je gewone rekenmachine houd geen rekening met de wiskundige volgorde regels php blijkbaar wel en google zeker
1 haakkjes van binnen naar buiten
2 machten en worteltrekkingen
3 vermenigvuldigen en delen
4 optellen en aftrekken
1 haakkjes van binnen naar buiten
2 machten en worteltrekkingen
3 vermenigvuldigen en delen
4 optellen en aftrekken
Mijn PHP blijkbaar niet, want het werkt niet.
https://www.php.net/manual/en/language.operators.bitwise.php
In PHP geeft 99 ^ 3 als resultaat 96.
Het probleem zit hem in dat je iets aan hebt genomen zonder te controleren. (Komt vaker voor met PHP..)
Je kunt de oplossing vinden door het probleem in kleinere stukken te breken:
Uitvoer:
Vermoedelijk probeer je 99 tot de macht 3 uit te rekenen in PHP. Dat gaat zo:
Resultaat: 970299
De operator ^ is geen wiskundige operator in PHP, maar een booleaanse: In PHP geeft 99 ^ 3 als resultaat 96.
Het probleem zit hem in dat je iets aan hebt genomen zonder te controleren. (Komt vaker voor met PHP..)
Je kunt de oplossing vinden door het probleem in kleinere stukken te breken:
Code (php)
Uitvoer:
Vermoedelijk probeer je 99 tot de macht 3 uit te rekenen in PHP. Dat gaat zo:
Resultaat: 970299
Ad Fundum op 15/02/2022 09:22:55:
Resultaat: 970299
Resultaat: 970299
Wist ik ook niet :). Ik ging ook uit van machten met ^
Ik trok een analogie met andere systemen zoals z/OS, waar je and moest typen omdat ze geen toetsenbord hadden met een ampersand.
Maar helaas, ik zat er naast. En dit stond toevallig wel gewoon in de handleiding van PHP.
De les: bij formele systemen zoals een programmeertaal moet je de handleiding gelezen kennen om te weten wat je aan het doen bent. Anders maak je allerlei fouten waar je geen erg in hebt.
Bij PHP zitten er relatief veel hiaten in de officiële documentatie. Het kan dan ook geen kwaad om een keer een goed boek te lezen dat alles van A tot Z behandeld. Een aanrader is het Kookboek PHP van Ward van der Put (https://www.bol.com/nl/nl/p/php-kookboek-hb/1001004006192040/)
En het kan geen kwaad om kennis te hebben van C, wat achter PHP zit. Dan begrijp je ineens een stuk beter waarom PHP in elkaar zit zoals het in elkaar zit, en wat de voor- en nadelen van die aanpak zijn.