Connecting Tech Pros Worldwide Help | Site Map

std::setprecision and scientific format

Woodster
Guest
 
Posts: n/a
#1: Jul 19 '05
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
Woodster
Guest
 
Posts: n/a
#2: Jul 19 '05

re: std::setprecision and scientific format


In article <MPG.1a1f01dc56c9edb798968c@news.westnet.com.au> , mirror@
127.0.0.1 says...

Sorry the line
[color=blue]
> 04e+01° C[/color]

should read

4e+01° C

there is no leading 0
Senthilvel Samatharman
Guest
 
Posts: n/a
#3: Jul 19 '05

re: std::setprecision and scientific format


Woodster wrote:
[color=blue]
> 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?[/color]

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";
[color=blue]
>
>
> Thanks in advance
>
> Sean Hannan[/color]

Closed Thread