So, I'm working on a C++ project. I have a var of long double type and assigned it a value like "1.02"
Then, I try to use cout to print it and the result is: -0
I already tried to use setprecision and all I found googling the problem.
What is the solution for this?
Example code:
#include <cstdlib>
#include <iomanip>
using namespace std;
int main(int argc, char** argv)
{
cout.precision(15);
long double var = 1.2;
cout << var << endl;
return 0;
}
OS: Windows 8.1 64 bits Compiler: minGW IDE: NetBeans 8.0.2
I see nothing wrong at all in the code. I just put it into a standard format and it works. Here is the code assuming what you posted is the entire thing.
I hope this answers your question.
Edit: P.S. Shorter, the better, so I have a better solution (opinionated).
I think this one is better since it is shorter. I would also recommend using printf if you are doing more complex decimal stuff since printf can choose which variables (if you have multiple) have decimals or how much.