|
| dividere tal i PHP Fra : Niels Bachmann |
Dato : 23-07-04 19:24 |
|
Jeg sidder og nørkler med et script, hvori jeg har brug for at dividere
nogle tal, og få antallet af hele gange tallene gik op, samt rest ud.
fx:
$res = ( 102 / 5 );
echo "$res";
udskriver 20,4
Jeg har brug for 20 + de 2 overskydene
hvordan løser man det?
MVH/ Niels Bachmann
| |
Jimmy (23-07-2004)
| Kommentar Fra : Jimmy |
Dato : 23-07-04 19:41 |
|
"Niels Bachmann" <niels@_NOSPAM_bachmann.nu> wrote in message
news:cdrl49$1idu$1@news.cybercity.dk...
> Jeg sidder og nørkler med et script, hvori jeg har brug for at dividere
> nogle tal, og få antallet af hele gange tallene gik op, samt rest ud.
>
> fx:
> $res = ( 102 / 5 );
> echo "$res";
>
> udskriver 20,4
>
> Jeg har brug for 20 + de 2 overskydene
Man *kunne* gøre således:
<?php
$a = 102;
$b = 5;
$Remainder = ($a % $b);
$Wholes = ($a - $Remainder) / $b;
echo $Wholes ." - ". $Remainder;
?>
Der er dog gansket giver bedre muligheder indbygget i PHP, som jeg ikke
kender til.
Mvh
Jimmy
| |
Tommy Ipsen (23-07-2004)
| Kommentar Fra : Tommy Ipsen |
Dato : 23-07-04 23:10 |
|
Niels Bachmann wrote:
> Jeg sidder og nørkler med et script, hvori jeg har brug for at dividere
> nogle tal, og få antallet af hele gange tallene gik op, samt rest ud.
>
> fx:
> $res = ( 102 / 5 );
> echo "$res";
>
> udskriver 20,4
>
> Jeg har brug for 20 + de 2 overskydene
echo 102%5; // modulus-operatoren - =resten ved heltalsdivision
echo (int) (102/5); //type caster til int-typen og får dermed
heltalsværdien tilbage - undersøg om opførslen for negative værdier er
hvad du forventer - ellers evt. noget afrunding.
Mvh Tommy
| |
Jacob Atzen (25-07-2004)
| Kommentar Fra : Jacob Atzen |
Dato : 25-07-04 11:11 |
|
Tommy Ipsen <tipsen@imada.sdu.dk> writes:
> Niels Bachmann wrote:
>
> > Jeg sidder og nørkler med et script, hvori jeg har brug for at
> > dividere nogle tal, og få antallet af hele gange tallene gik op,
> > samt rest ud. fx:
> >
> > $res = ( 102 / 5 );
> > echo "$res";
> > udskriver 20,4
> > Jeg har brug for 20 + de 2 overskydene
>
> echo 102%5; // modulus-operatoren - =resten ved heltalsdivision
> echo (int) (102/5); //type caster til int-typen og får dermed
Den er ikke helt pæn. Der advares direkte mod at caste en ukendt brøk
til integer:
< http://dk2.php.net/manual/en/language.types.integer.php#language.types.integer.casting>
Så hellere:
$modulus = 102%5;
$quotient = (int)(round((102 - $modulus) / 5));
--
Med venlig hilsen
- Jacob Atzen
| |
|
|