fmod(): Seltsame Typisierung

Hallo,

ich habe gestern fmod() gebraucht und mich über folgende Angabe im
Manual doch sehr gewundert:

_float_ fmod ( _float_ $x, _float_ $y )

Warum ist hier alles vom Typ float? Meiner unmaßgeblichen Meinung nach =

ist ein Rest einer Division zumindest im reellen Zahlenraum immer
ganzzahlig. Das heißt, die Typisierung des Ergebnisses als Float ist
schlicht *falsch*. Und Divident und Divisor können ja immer
grundsätzlich entweder ganzzahlig oder auch Fließkomma sein.

=DCbersehe ich hier den Sinn nur, oder gibt es keinen?

Grüße,

Alex
Alexander Schestag [ Do, 02 August 2007 20:47 ] [ ID #1785354 ]

Re: fmod(): Seltsame Typisierung

Alexander Schestag schrieb:
> Hallo,
>
> ich habe gestern fmod() gebraucht und mich über folgende Angabe im
> Manual doch sehr gewundert:
>
> _float_ fmod ( _float_ $x, _float_ $y )
>
> Warum ist hier alles vom Typ float? Meiner unmaßgeblichen Meinung nach
> ist ein Rest einer Division zumindest im reellen Zahlenraum immer
> ganzzahlig. Das heißt, die Typisierung des Ergebnisses als Float ist
> schlicht *falsch*. Und Divident und Divisor können ja immer
> grundsätzlich entweder ganzzahlig oder auch Fließkomma sein.

Versteh ich deine Frage falsch oder beantwortet das Beispiel aus dem Manual
<?php
$x = 5.7;
$y = 1.3;
$r = fmod($x, $y);
// $r ist 0.5 weil 4 * 1.3 + 0.5 = 5.7
?>
deine Frage?

Daniel
--
------- _ | _ |_ _. | _ _ _ -------
(_| | (_) |_) (_| | /_ (_) (_)
_| Deine Reisecommunity
--- Reiseblogs - Reisekarte - Reisetipps - http://www.globalzoo.de/ ---
Daniel Fett [ Do, 02 August 2007 20:55 ] [ ID #1785355 ]

Re: fmod(): Seltsame Typisierung

Alexander Schestag schrieb:

> _float_ fmod ( _float_ $x, _float_ $y )
>
> Warum ist hier alles vom Typ float?

Was soll es denn sonst sein?

> Meiner unmaßgeblichen Meinung nach ist ein Rest einer Division
> zumindest im reellen Zahlenraum immer ganzzahlig.

Das ist falsch. fmod(3.5, 1.7) ergibt z.B. 0.1, und das ist alles andere
als ganzzahlig.

> Das heißt, die Typisierung des Ergebnisses als Float ist schlicht
> *falsch*.

Die Typisierung ist so, wie sie ist, vollkommen in Ordnung.

Gruß. Claus
Claus Reibenstein [ Do, 02 August 2007 21:05 ] [ ID #1785356 ]

Re: fmod(): Seltsame Typisierung

Hi,

Claus Reibenstein wrote:
> Alexander Schestag schrieb:

>> Meiner unmaßgeblichen Meinung nach ist ein Rest einer Division
>> zumindest im reellen Zahlenraum immer ganzzahlig.

> Das ist falsch. fmod(3.5, 1.7) ergibt z.B. 0.1, und das ist alles ander=
e
> als ganzzahlig.

Ok, ich seh's ein, hier war ich auf dem falschen Dampfer. Liegt wohl
daran, daß mir Resteberechnungen bei Fließkommadivident und -divisor =

noch nicht so wirklich untergekommen sind. Ich hab vom natürlichzahlige=
n
Bereich verallgemeinert.

Grüße,

Alex
Alexander Schestag [ Do, 02 August 2007 21:22 ] [ ID #1785357 ]

Re: fmod(): Seltsame Typisierung

Alexander Schestag schrieb:
> Hallo,
>
> ich habe gestern fmod() gebraucht und mich über folgende Angabe im
> Manual doch sehr gewundert:
>
> _float_ fmod ( _float_ $x, _float_ $y )
>
> Warum ist hier alles vom Typ float? Meiner unmaßgeblichen Meinung nach

drum heißt es ja fmod

> ist ein Rest einer Division zumindest im reellen Zahlenraum immer
> ganzzahlig. Das heißt, die Typisierung des Ergebnisses als Float ist

Das ist falsch, da sowohl Quotient als auch Rest werden dabei aus
demselben Ring(in diesem Fall aus |R) genommen wie Divisor und Dividend.

> schlicht *falsch*. Und Divident und Divisor können ja immer
> grundsätzlich entweder ganzzahlig oder auch Fließkomma sein.

Wenn du nur mod wünscht dann:

$result = 10.5 % 3;
echo $result;

>
> Übersehe ich hier den Sinn nur, oder gibt es keinen?
>
> Grüße,
>
> Alex
Stefan Braumeister [ Fr, 03 August 2007 11:42 ] [ ID #1786378 ]
PHP » de.comp.lang.php.misc » fmod(): Seltsame Typisierung

Vorheriges Thema: Session endet nach Zeit "X" - wieso?
Nächstes Thema: Objektorientierte Programmierung mit PHP