Convert scientific notation to decimal in C++
11,564
Solution 1
There is a method in your output string stream called precision. You can use it to adjust the number of digits after the comma. It defaults to 6 and missing digits are filled up with 0s (hence the name fixed). In order to achieve 4634257.1
being displayed, set precision to 1:
void conversion(double counts)
{
std::ostringstream ss;
ss.precision(1);
ss << std::fixed << counts;
std::cout << ss.str() << " MeV";
}
Solution 2
You can use std::setprecision
.
Comments
-
Robert Whitley almost 2 years
I want to be able to output in decimal and not scientific for all cases in my code.
If I have 122041e+08 then I want it to display as 122041000
If I have 4.6342571e+06 then I want it to display as 4634257.1
... and so on.
Using my code, the output for 4.6342571e+06 is 4634257.100000
void conversion(double counts) { std::ostringstream ss; ss << std::fixed << counts; std::cout << ss.str() << " MeV"; }
Can someone explain to me why it adds 0's to the end and if it's possible to remove them.
-
Abhishek Mane almost 3 yearsideone.com/5CmObK see here scientific number is converting into normal float number by use of
std::fixed
rather thanstd::setprecision
. I don't claim mine is right but I am telling you what I observing. I am new toc++
;