login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Rekenen (Opgelost)

Offline Jero3n - 17/04/2008 21:07
Avatar van Jero3nPHP interesse Goedenavond  

Ik was een script aan het maken, lukte helemaal, tot het einde, waarvan ik dacht dat het zo simpel was.
Mijn script doet wat met 2 getallen, en hier komen 2 sommen uit die ik door elkaar moet delen.

Voorbeeld
Som 1 = 2*5*6
Som 2 = 5+6

Antwoord som 1 is natuurlijk 60.
Antwoord som 2 natuurlijk 11.
Als ik dit op m'n rekenmachine intype krijg ik iets van 5,454545.
Hoe kan ik nu zorgen, dmv php, dat hij uitrekent dat 2*5*6 60 is en dat 5+6 11 is, en dat hij deze uitkomsten daarna door elkaar deelt?
Ik heb al van alles geprobeert, maar ik kom er niet uit.

Hopelijk kunnen jullie me helpen  

Jero3n

17 antwoorden

Gesponsorde links
Offline Stijn - 17/04/2008 21:12
Avatar van Stijn PHP expert
  1. $som1 = 2 * 5 * 6;
  2. $som2 = 5 + 6;
  3. $uitkomst = $som1 / $som2;
Niet téver zoeken zou ik zeggen .
Offline Abbas - 17/04/2008 21:13 (laatste wijziging 17/04/2008 21:13)
Avatar van Abbas Gouden medaille

Crew .NET
Iets als dit?
  1. <?php
  2.  
  3. $som1 = 2*5*6;
  4. $som2 = 5+6;
  5. $result = $som1 / $som2;
  6. echo $result;
  7.  
  8. ?>
Edit: Stijn was me voor... 
Offline Jero3n - 17/04/2008 21:15 (laatste wijziging 17/04/2008 21:16)
Avatar van Jero3n PHP interesse Daar dacht ik ook aan, maar dat werkt niet.
Ik geef gewoon het script even, dan zien jullie dat dat jammer genoeg niet werkt..

Plaatscode: 7218

Dit is wat ik eruit krijg:
Citaat:
2*5*6
6+5
=
3


P.S het is een script om harmonische gemiddeldes uit te rekenen  
Offline Kr4nKz1n - 17/04/2008 21:24
Avatar van Kr4nKz1n Onbekend
stijn1989 schreef:
[..code..]Niet téver zoeken zou ik zeggen .


Dat is goed ja. Maar ik weet niet of hij $som1 en $som2 eerst uitrekent en dan pas deelt.

  1. $som1 = (2 * 5 * 6);
  2. $som2 = (5 + 6);
  3. $uitkomst = $som1 / $som2;


Dus dan kun je dit even controleren door met haakjes te werken.

Haakjes gaan altijd voor.
Offline Jero3n - 17/04/2008 21:28
Avatar van Jero3n PHP interesse Ik heb het script nu veranderd zoals als jij het zei:

Plaatscode: 7219

Dit geeft, jammer genoeg, dit:

Citaat:
Warning: Division by zero in K:Portable ApplicationsUsbWebserverRootgemindex.php on line 43
(2*5*6)
(6+5)
=


:(
Offline Kr4nKz1n - 17/04/2008 21:30 (laatste wijziging 17/04/2008 21:31)
Avatar van Kr4nKz1n Onbekend Dit probleem ben ik volgens mij wel eens vaker tegen gekomen. Dat dat delen met die / niet zo goed werkt.

Ik zal zelf even wat gaan testen op mijn server .

Hopelijk met veel succes.
Edit
Ik krijg als ik geen haakjes gebruik hetzelfde als ik wel haakjes gebruik.


60
11
5.45454545455


Welke PHP versie heb jij?
Offline Abbas - 17/04/2008 21:36
Avatar van Abbas Gouden medaille

Crew .NET
Heeft volgens mij niet met de versie van PHP te maken...
Offline Kr4nKz1n - 17/04/2008 21:38
Avatar van Kr4nKz1n Onbekend In ieder geval ook niet met een fout in de coding 
Offline Jero3n - 17/04/2008 21:39 (laatste wijziging 17/04/2008 21:40)
Avatar van Jero3n PHP interesse Ik kan alleen vinden dat ik php 5 heb, preciezer zie ik nergens staan (ik gebruik usbwebserver)
Maar die getallen die jij geeft zijn inderdaad de juiste.

[EDIT] Ik heb 5.2.4
Offline Kr4nKz1n - 17/04/2008 22:05
Avatar van Kr4nKz1n Onbekend Bij mij werkt het perfect met UsbWebServer 

Net getest geen error.
60
11
5.4545454545455
Offline Jero3n - 18/04/2008 09:54
Avatar van Jero3n PHP interesse Vaag, wat is het script dat jij gebruikt dan?
Offline zointer - 18/04/2008 10:13
Avatar van zointer HTML gevorderde
Jero3n schreef:
Citaat:
Warning: Division by zero


wil gewoon zeggen: Devision by zero = deling door nul.
Dus je probeerde iets te delen door 0 en dat gaat niet 
Offline Jero3n - 18/04/2008 10:27 (laatste wijziging 18/04/2008 15:51)
Avatar van Jero3n PHP interesse Misschien is het probleem dat het een string is?
Want 2*5*6 is geen 0 en 5+6 is geen 0 
Zou dat het probleem zijn?
Als ik er eval voor zet (dus eval($teller) / eval($noemer)), dus dan wordt het stukje bereken zo:

  1. //Bereken
  2. $teller= "(" . $teller . ")";
  3. $noemer = "(" . $noemer . ")";
  4. $antwoord = eval($teller) / eval($noemer);


Dan krijg ik dit op m'n scherm te zien:

Citaat:
Parse error: syntax error, unexpected $end in K:Portable ApplicationsUsbWebserverRootgemindex.php(43) : eval()'d code on line 1

Parse error: syntax error, unexpected $end in K:Portable ApplicationsUsbWebserverRootgemindex.php(43) : eval()'d code on line 1

Warning: Division by zero in K:Portable ApplicationsUsbWebserverRootgemindex.php on line 43
(2*5*6)
(6+5)
=


Als ik die eval vervang door intval, krijg ik weer dit op m'n scherm:

Citaat:
Warning: Division by zero in K:Portable ApplicationsUsbWebserverRootgemindex.php on line 43
(2*5*6)
(6+5)
=


Hoe moet ik dit oplossen? 
Offline jc2 - 18/04/2008 19:07
Avatar van jc2 PHP interesse Wordt aan zowel 'teller' als 'noemer' toch wel een waarde gegeven? Het lijkt erop dat de noemer geen waarde krijgt.
Controleer je script eens op typefouten of vergeten tekens.
Offline Kr4nKz1n - 18/04/2008 19:14
Avatar van Kr4nKz1n Onbekend Die haakjes moet je eerer al gebruiken. Waar je $teller aanmaakt.
Offline Rik - 18/04/2008 19:21
Avatar van Rik Gouden medailleGouden medaille

Crew algemeen
Die unexpected $end fouten die je krijgt komen doordat je de statements die je met eval probeert uit te voeren niet geldig zijn afgesloten: ze moeten eindigen op een puntkomma.

Een tweede fout die je maakt is dat je verwacht dat eval vanzelf het resultaat zal returnen net zoals bij javascript. Dat doet het echter niet! Je moet er daarvoor nog return bijzetten.

Probeer eens;
  1. //Bereken
  2. $teller= "return (" . $teller . ");";
  3. $noemer = "return (" . $noemer . ");";
  4. $antwoord = eval($teller) / eval($noemer);
Offline Jero3n - 18/04/2008 20:50
Avatar van Jero3n PHP interesse Boukefalos, heel erg bedankt, dat is het!
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.312s