Warum ist die division Ergebnis zwischen zwei ganzen zahlen gekürzt?

Alle erfahrene Programmierer in C# (ich denke, das kommt von C) verwendet werden, um Zauber auf den ganzen zahlen in eine division zu kommen, die decimal /double /float Ergebnis statt der int - (das eigentliche Ergebnis abgeschnitten).

Ich würde gerne wissen, warum diese umgesetzt wie dieses? Gibt es irgendeinen guten Grund zum abschneiden der Ergebnis, wenn beide zahlen sind integer?

  • Das ist, wie integer-Mathematik funktioniert.
  • Ich würde sagen, die Abwärtskompatibilität und die logische (int/int=int und nicht int/int=double). Wer haben eine andere Programmiersprache benutzt würde erwarten, dass dieses Verhalten. Gibt es irgendeine andere Sprache, die tun es auf andere Weise?
  • Dokumentation zu diesem Thema ist Recht klar.
  • Wie viele Seiten würde Sie haben, wenn jede Seite hätte 20 Stück und Sie haben 219 Elemente, um Sie zu füllen mit?
  • Pascal und Basic haben unterschiedliche Betreiber für double-und int-division, wo der Typ des Ergebnisses hängt von der Betreiber nicht auf die Argumente ein.
  • Wenn es nicht funktioniert, die Art, die Nummer 1 am meisten benutzt, die Bedienung nach einer division wäre ein abschneiden der Konvertierung..
  • ja - Pascal (oder Delphi mindestens) implementiert das Ergebnis der integer-division als float. Es verwendet, um mich richtig ärgern, wenn ich wechselte zu C, das Ergebnis war ein abgerundetes-down-integer. Nachdem alle, in der Schule, wenn Sie sagte, 3 geteilt durch 2 = 1, Ihre Mathe-Lehrer wäre nicht beeindruckt!
  • Python 3 gibt int / int = double. Python 2 gearbeitet, der andere Weg aber jetzt Sie ' ve Hinzugefügt eine zweite Betreiber // wenn Sie eine ganze Zahl als Ergebnis.

InformationsquelleAutor Diego | 2012-03-23
Schreibe einen Kommentar