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 / 6
zijn beide getallen gehele getallen. Dit betekent dat deze deling een geheeltallige deling uitvoert, wat resulteert in 0
. Om een double
deling te doen, moet één getal een dubbele zijn: 1.0 / 6
bijvoorbeeld.
Antwoord 2, autoriteit 33%
Integer letterlijke 1
en 6
hebben 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;