Deling in C++

Ik ben nieuw in C++ en ik heb deze eenvoudige code geprobeerd:

#include<iostream>
#include<math.h>
using namespace std;
int main(){
    double a;
    a=1/6;
    cout<<a;
}

Maar het resultaat is 0. Zoals ik begreep, zou double moeten werken met reële getallen, dus zou het resultaat niet 1/6 of 0.1666666 moeten zijn? Bedankt!


Antwoord 1, autoriteit 100%

In de uitdrukking 1 / 6zijn beide getallen gehele getallen. Dit betekent dat deze deling een geheeltallige deling uitvoert, wat resulteert in 0. Om een doubledeling te doen, moet één getal een dubbele zijn: 1.0 / 6bijvoorbeeld.


Antwoord 2, autoriteit 33%

Integer letterlijke 1en 6hebben het type int. Dus in de uitdrukking

1/6

er wordt de gehele rekenkunde gebruikt en het resultaat is gelijk aan 0.

Gebruik ten minste één van de operanden als een zwevende letterlijke. Bijvoorbeeld

a = 1.0/6;

of

a = 1/6.0;

of

a = 1.0/6.0;

Other episodes