![]() |
|
|
|
#1 |
|
In a program, I'm using an ostringstream to convert a floating point
value to a string. When the numbers are big enough, they are converted using scientific notation. To fix this, I changed the code to oStream << fixed << myFloat; but now there are an unnecessary amount of trailing zeros that I don't want. I seem to recall something in C, using printf(), where you could specify how many places you wanted. For examples, using something like printf("%1.2", 0.4567 Is there any way to force a certain number of decimal places in C++ using ios streams (ostringstreams in particular)? -Brandon Brandon |
|
|
|
|
#2 |
|
Posts: n/a
|
"Brandon" <> wrote in message
news: om... > In a program, I'm using an ostringstream to convert a floating point > value to a string. When the numbers are big enough, they are > converted using scientific notation. To fix this, I changed the code > to > oStream << fixed << myFloat; > but now there are an unnecessary amount of trailing zeros that I don't > want. I seem to recall something in C, using printf(), where you > could specify how many places you wanted. For examples, using > something like printf("%1.2", 0.4567 > Is there any way to force a certain number of decimal places in C++ > using ios streams (ostringstreams in particular)? I think you might be searching for std::setprecision() (<iomanip>) or std::ios_base: int main() { double testData[] = {0.00000001, 1.0, 20.0, 1000000000000000.0, std::numeric_limits<double>::max()}; int numElems = sizeof(testData)/sizeof(testData[0]); for ( int i = 0; i < numElems; ++i ) { std::cout << testData[i] << std::endl; } std::cout << std::fixed << std::setprecision(2); std::cout << "After modifying stream:" << std::endl; for ( int i = 0; i < numElems; ++i ) { std::cout << testData[i] << std::endl; } return 0; } Output (Win2K, VC++. Net 2003): 1e-008 1 20 1e+015 1.79769e+308 After modifying stream: 0.00 1.00 20.00 1000000000000000.00 17976931348623180000000000000000000000000000000000 00000000000000000000000000 0000 00000000000000000000000000000000000000000000000000 00000000000000000000000000 0000 00000000000000000000000000000000000000000000000000 00000000000000000000000000 0000 00000000000000000000000000000000000000000000000000 0000000000000000000.00 -- David Hilsee David Hilsee |
|
|
|
#3 |
|
Posts: n/a
|
"Brandon" <> wrote in message
> Is there any way to force a certain number of decimal places in C++ > using ios streams (ostringstreams in particular)? You can use setprecision. ostringstream o; o << setprecision(2); o << 1.2345; o << 6.7890; Siemel Naran |
|
|
|
#4 |
|
Posts: n/a
|
"Brandon" <> wrote in message news: om... > In a program, I'm using an ostringstream to convert a floating point > value to a string. When the numbers are big enough, they are > converted using scientific notation. To fix this, I changed the code > to > oStream << fixed << myFloat; > but now there are an unnecessary amount of trailing zeros that I don't > want. I seem to recall something in C, using printf(), where you > could specify how many places you wanted. For examples, using > something like printf("%1.2", 0.4567 > Is there any way to force a certain number of decimal places in C++ > using ios streams (ostringstreams in particular)? > > -Brandon You might use also C-like printf format with C++ ostream; float format sample can be seen at http://groups.google.com/groups?selm....uni-berlin.de. -- Alex Vinokur http://mathforum.org/library/view/10978.html http://sourceforge.net/users/alexvn Alex Vinokur |
|
|
|
#5 |
|
Posts: n/a
|
"Alex Vinokur" <> wrote in message news:<>...
> You might use also C-like printf format with C++ ostream; float format sample can be seen at > http://groups.google.com/groups?selm....uni-berlin.de. Boost already has this: http://www.boost.org/libs/format/index.html Much more convenient than the standard cout manipulators. --- Brian Brian McGuinness |
|
|
|
#6 |
|
Posts: n/a
|
> I think you might be searching for std::setprecision() (<iomanip>) or
> std::ios_base: Yeah, that was it. I haven't had much use for stream formatting lately and forgot about it. Thanks for the help. -Brandon Brandon |
|
![]() |
| Thread Tools | Search this Thread |
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| problems formatting hard drive | jess75luv | Hardware | 1 | 06-10-2009 03:24 PM |
| formatting in a card reader | carl | Hardware | 0 | 11-14-2008 10:59 PM |
| Help Formatting | Zanbato | General Help Related Topics | 0 | 03-06-2008 06:44 PM |
| help! noob w/ formatting problems!!! | littlemisssunshine | General Help Related Topics | 1 | 09-13-2006 01:00 PM |
| Newbie Quest. On 16:9 Formatting, etc. | Robert11 | DVD Video | 3 | 06-22-2004 02:41 PM |