Ga naar inhoud

[PHP] Wat doet de operator %


Aanbevolen berichten

Als je alleen integere (gehele) getallen gebruikt dan is bijvoorbeeld 17/4=4 maar dan mis je de 1 die dus niet deelbaar is door 4 omdat de uitkomst kleiner is dan het kleinste gehele getal. Met 17%4=1 krijg je dus dit restgetal. Bijvoorbeeld makkelijk als je minuten in uren om wil zetten, 3500 minuten wordt dan 3500/60=58 en 3500%60=20. De uitkomst is dus 58 uur en 20 minuten.
Link naar reactie
[quote:1bec295463="BelgiumBoy_007"][code:1:1bec295463]<?php print (17/4); ?>[/code:1:1bec295463]Geeft 4.25 met Apache op Windows :-?[/quote:1bec295463] Op jouw manier verzint PHP zelf een type om de uitkomst in op te slaan. Dat type zal decimale getallen ondersteunen aangezien je een uitkomst krijgt met decimalen. Ik forceer PHP in mijn voorbeeld om de uitkomst als een integer op te slaan. Een integer ondersteunt geen decimale getallen, dus kan ie onmogelijk die laatst 0,25 opslaan. Die knipt ie er dus vanaf.
Link naar reactie
ik vraag me af of de TS antwoord heeft op zn vraag :) zo niet, lees dan door :p module geeft in feite de rest van een staartdeling. Om maar verder te gaan met het voorbeeld van 17/4 [code:1:a60dd334df] 4 / 17 \ 4 16 - ---------- 1 [/code:1:a60dd334df] dus als je 17 % 4 uitvoert krijg je 1. Als je nog maar net bent begonnen met programmeren zal het vooral handig zijn om te kijken of getallen even of oneven zijn(bedenk zelf eens hoe ;)) en om te kijken of getallen deelbaar zijn door andere getallen :). Wat de discussie van 17/4 betreft, natuurlijk is 17/4 = 4,25 maar ruudfeen heeft in dit geval wel gelijk. In c++(wat ruudfeen gebruikt zo te zien) moet je variable van tevoren een type geven. Dus eerst declareren, en dan pas gebruiken. [code] int a; double b; a = 17/4; b= 17/4; [code] hierin zal a gelijk zijn aan 4 en b aan 4.25, terwijl je bij beide hetzelfde doet. Dat komt omdat a een interger is en b een double. In php worden variable on-the-fly gemaakt, zoals dat heet. Dat wil zeggen dat ze worden gemaakt wanneer er een waarde aan wordt toegekend. En kan er dus ook meteen het type bepaald worden. Daarom lever in php 17/4 in de gewone geval 4.25 op :)
Link naar reactie
[quote:9e5dd3bc75="Dr HenDre"]ja, maar je controleert in feite of een tabelrij even of oneven is en daarvan uitgaande geef je het een kleur :) [/quote:9e5dd3bc75] Er is toch ook niemand die anders beweerd? Ik begrijp je reactie niet. [quote:9e5dd3bc75="Dr HenDre"]en om de code korter en netter te maken:) [/quote:9e5dd3bc75] Persoonlijk zie ik overigens ook niet waarom jouw manier netter zou zijn (korter wel, maar dat verschil is te verwaarlozen). Eigenlijk vind ik 'm alleen maar onduidelijker.
Link naar reactie
== 0 word in de prog wereld(iig bij c++ en php) als niet-nette code beschouwd. Want == 0 staat gelijk met de boolean false. En de int word tijdens het compilen gecast naar een bool. Netzoals dat er wordt gezegd dat het gebruiken van label's en goto's niet-nette code oplevert. Als je dit allemaal voor de lol doet maakt het natuurlijk geen kut uit, maar zodra je het "voor andere" gaat doen, gaat de waarde van je werk omlaag door het gebruik van bv goto's. Men prefereert loops boven goto's :) kan er ook niets aan doen :)
Link naar reactie
[quote:2add37eb44="Dr HenDre"]== 0 word in de prog wereld(iig bij c++ en php) als niet-nette code beschouwd. Want == 0 staat gelijk met de boolean false. En de int word tijdens het compilen gecast naar een bool. Netzoals dat er wordt gezegd dat het gebruiken van label's en goto's niet-nette code oplevert. Als je dit allemaal voor de lol doet maakt het natuurlijk geen kut uit, maar zodra je het "voor andere" gaat doen, gaat de waarde van je werk omlaag door het gebruik van bv goto's. Men prefereert loops boven goto's :) kan er ook niets aan doen :)[/quote:2add37eb44]Wat zijn goto's ? :-?
Link naar reactie
k had het eigenlijk over goto's in c++, in php bestaat dat niet. maar hier een voorbeel in c++ [code:1:e9822c2341] #include <iostream> using namespace std; int main() { int i=0; start: cout<<"Dit stuk begint bij start\n"; deel_twee: cout<<"Dit is het tweede deel\n"; einde: cout<<"Dit is het einde\n"; if(!i) { i++; goto deel_twee; } return 0; } [/code:1:e9822c2341] dit zal als uitvoer het volgende geven: Dit stuk begint bij start Dit is het tweede deel Dit is het einde Dit is het tweede deel Dit is het einde
Link naar reactie

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

×
×
  • Nieuwe aanmaken...