Ergebnis 1 bis 2 von 2

Thema: Zuweisungsanweisungen/ Typkonversion

  1. #1
    Registered User
    Registriert seit
    Mar 2013
    Beiträge
    7
    Renommee
    10

    Zuweisungsanweisungen/ Typkonversion

    Code:
    int x, y=2;
    double a,b;
    x=(y+1)/2;
    a=(y+1)/2;
    b=(y+1.0)/2;
    printf("x=%d a=%f b=%f\n",x,a,b);

    Dadurch bekommt x den Wert 1; denn y+1 hat den Wert 3, und die anschließende Division
    wird ganzzahlig durchgeführt. Ebenso hat a den Wert 1, weil die Umwandlung
    in den Typ double erst nach der Auswertung der rechten Seite erfolgt. Dagegen bekommt
    b den Wert 1.5; denn wegen der Zahlenkonstante 1.0 in Gleitpunktform wird
    der Wert von y bereits vor der Addition in einen double-Zahlenwert umgerechnet.

    Meine Frage zur Zeile mit b: wird die /2 auch umgewandelt in Gleitpunkt also /2.0 oder wird einfach durch 2 geteilt ?

  2. #2
    Member
    Registriert seit
    May 2004
    Beiträge
    1.432
    Renommee
    1142

    AW: Zuweisungsanweisungen/ Typkonversion

    Bei Operationen mit int und float (unterschiedlichen, kompatiblen Datentypen), wird in C intern und im Ergebnis float (der genauere) verwendet.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •