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.
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";
}