2017-06-28 4 views
-2

Warum gibt die Verwendung von float anstelle von int mir andere Ergebnisse, wenn alle meine Eingaben Ganzzahlen sind?Verwendung von ganzen Zahlen und Fließkommawerten

{ 

    int a = 17, b = 5; 
    int c = a/b; 
    cout<<c; 

    } 

    { 

    float a = 17, b = 5; 
    float c; 
    c = a/b; 
    cout<<c; 
    } 
+0

Dokumentation lesen: https://stackoverflow.com/documentation/floating-point/8816/getting-started-with-floating-point – Nimish

+0

Sie sind verschiedene Operationen, die auf Daten verschiedener Typen angewendet werden. Warum sollten sie gleich sein? Jedes anständige Buch über C oder C++ erklärt den Unterschied zwischen Fließkomma und Integer Division. –

+0

@JohnColeman Können Sie mir irgendein anständiges Buch über C oder C++ vorschlagen? – vasanths294

Antwort

0

Die vom Operator/durchgeführte Division ist anders.

Wenn beide ganze Zahlen sind,

c = a/b; 

eine Integer-Division tun wird, so 17/5 --> 3.

Wenn beide Doppelzimmer,

c = a/b; 

wird eine Gleitkomma-Division tun, so 17.0/5.0 --> 3.4.

1

Hier geht es nicht um Wert. Float-Typ-Variablen behalten ihren Wert als Gleitkommazahl, auch wenn Sie ihr einen ganzzahligen Wert zuweisen. Also, wenn Sie zu einer float-Variable zuweisen, werden Ihre Variable diesen Wert als 17,0 halten und macht eine Operation nach dem Floating-Point.