I'm trying to make a program that uses the Taylor Sequence to approximate e
.
However, I've come across a problem that makes me feel quite noobish at C++. the variable e
is a float, but whenever I use cout << e << "\n";
it just outputs 2, not 2.0 or 2.7 or whatever it should be outputting at any point in the code. Here's the main()
code:
int main() {
float e = 1.0;
int d = 1;
int counter = 25;
while(counter>=1){
counter-=1;
e+=(1/fact(d));
d++;
cout << e << "\n";
}
}
fact()
computes the factorial (!) of a number. When I run the program I get 25 lines that say 2
. What am I doing wrong? And I do have #include <iostream>
and using namespace std;
before the functions.
Your division returns an integer and not actually a float. One of the sides of the division has to be a float for the output to be a float.
Changing:
to:
Should solve your problem.