Lars: Rückgabewert von modulo

Hallo,

per Definition liefert modulo doch den Restwert einer Division ?!

In meinem Fall möchte ich in der Variablen "modulo" den Restwert
der Division wert.length/3 speichern, wobei "wert" eine beliebige Zahl ist.

modulo = wert.length/3;

Soweit wert.length >= 3 ist, ist die arbeitsweise von modulo für mich auch nachvollziehbar. Bei einer ein- oder zweistelligen Zahl liefert modulo aber ebenfalls einen Wert > 0.

Statt (bei einstelligem Wert) 1:3 =  0.333333 bedeutet modulo = 0
erhält die Variable "modulo" den Wert 1.
Das kann nur bedeuten: intern wird gerechnet:

10:3 = 3x3 = 9 Restwert = 1;

und

Statt (bei zweistelligem Wert) 2:3 =  0.666666 bedeutet modulo = 0
erhält die Variable "modulo" den Wert 2.
Das kann nur bedeuten: intern wird gerechnet:

20:3 = 6x3 = 18 Restwert = 2;

Was passiert hier genau, und wo finde ich eine "offizielle" Erklärung für dieses Verhalten ? Oder irre ich ganz ?

In allen mir bekannten Beispielen zu modulo ist der zu teilende Wert immer größer als der Wert, durch den geteilt wird ...

Freue mich auf den einen oder anderen klärenden Satz dazu und wünsche bei dieser Gelegenheit ein schönes neues Jahr

Lars

  1. Hallo Lars,

    per Definition liefert modulo doch den Restwert einer Division ?!

    Statt (bei einstelligem Wert) 1:3 =  0.333333 bedeutet modulo = 0
    erhält die Variable "modulo" den Wert 1.

    1 ganzzahlig geteilt durch 3 ist 0 Rest 1. Warum erwartest Du 0?

    Was passiert hier genau, und wo finde ich eine "offizielle" Erklärung für dieses Verhalten ? Oder irre ich ganz ?

    Siehe z.B. Wikipedia, Modulo.

    In allen mir bekannten Beispielen zu modulo ist der zu teilende Wert immer größer als der Wert, durch den geteilt wird ...

    Dann kennst Du zuwenige Beispiele :-) Folge dem von mir angegebenen Link und Du wirst ein solches Beispiel finden.

    Freundliche Grüße

    Vinzenz

    1. Hallo Vinzent,

      ich habe das Beispiel gefunden - und sogar verstanden! Kein Wunder, dass ich auf dem falschen Ast gesessen habe.

      2 mod 3 = 2, da 2 = 0×3 + 2

      Es grüßt und dankt der Lars