How to set number format to show all decimal digits in C++?
I have a problem in c++, I have this code to do a division:
long a = 33732193487; int b = 1000000; double c = (double)a/(double)b;
Well, I would like to store the complete result in the variable c, I mean:
c = 33732.193487;
for later, for example, use this value to make a sum or substrac. But I only get to store the result with one decimal.
Is there any option to store the 6 decimals with c++?
Thank you in advance! Sorry if my question is too obvious.作者: Carlos Pascual Sanchez 的来源 发布者: 2017 年 12 月 27 日
Let me guess (a complete program would have been better): you're seeing six decimal places when you write the value to standard out:
std::cout << c << '\n';
Those six decimal places are the default for output; they have nothing to do with the precision of the value of
c, which is determined by the type of
double you typically have about fifteen digits. To see those digits in your output statement, use
std::cout << std::setprecision(15) << c << '\n';
But beware: you can use values greater than 15 in the call to
setprecision and the stream inserter will happily generate more digits, with nonsensical values.