By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
434,639 Members | 1,988 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 434,639 IT Pros & Developers. It's quick & easy.

std::setprecision and scientific format

P: n/a
I am using the std::setprecision function to format variables of type
double in a string however I am unsure how to stop this appearing in
scientific notation.

For example

std::stringstream buffer;

buffer << setprecision(1) << 40.0 << " C";

produces the string

04e+01 C

in buffer.

Ideally I would like this to be

40 C

but I think I will have to settle for 40.0 C if I want to cater for
other values where the single decimal place is required.

How do I use setprecision an not get scientific notation as the output?

Thanks in advance

Sean Hannan
Jul 19 '05 #1
Share this Question
Share on Google+
2 Replies


P: n/a
In article <MP************************@news.westnet.com.au> , mirror@
127.0.0.1 says...

Sorry the line
04e+01 C


should read

4e+01 C

there is no leading 0
Jul 19 '05 #2

P: n/a
Woodster wrote:
I am using the std::setprecision function to format variables of type
double in a string however I am unsure how to stop this appearing in
scientific notation.

For example

std::stringstream buffer;

buffer << setprecision(1) << 40.0 << " C";

produces the string

04e+01 C

in buffer.

Ideally I would like this to be

40 C

but I think I will have to settle for 40.0 C if I want to cater for
other values where the single decimal place is required.

How do I use setprecision an not get scientific notation as the output?
Use the manipulator "fixed" to get rid of scientific notation..
See John Bell's example for your previous post...
buffer << fixed << setprecision(3) << 40.0 << " C";


Thanks in advance

Sean Hannan


Jul 19 '05 #3

This discussion thread is closed

Replies have been disabled for this discussion.