Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17

x
Solved

# Float or double to string....

Posted on 2002-05-05
Medium Priority
247 Views
Hello Experts...

There is a library for converting integers to chars.
itoa....
But I didn't find any to do the same with noninteger numbers...
For instances... How can I convert the number 12.365 to a char array with "12.365"?.

If there is no function that Does that... I guess I will must write one....
How can I handle a double var?
I mean.... Is it right to say that the first four bytes contains the int part of the number and the last four bytes the decimal part?...

Thank you...
0
Question by:Marsc
[X]
###### Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

• Help others & share knowledge
• Earn cash & points
• 4
• 3
• 2
• +2

LVL 86

Expert Comment

ID: 6990611
use either

/* _GCVT.C: This program converts -3.1415e5
* to its string representation.
*/

#include <stdlib.h>
#include <stdio.h>

void main( void )
{
char buffer[50];
double source = -3.1415e5;
_gcvt( source, 7, buffer );
printf( "source: %f  buffer: '%s'\n", source, buffer );
_gcvt( source, 7, buffer );
printf( "source: %e  buffer: '%s'\n", source, buffer );
}

or

#include <sstream>

stringstream ss;
double d = 3.141;

ss << d;

const char* psz = ss.str().c_str();
0

LVL 86

Expert Comment

ID: 6990613
Ooops, correction - the latter sample should read

#include <sstream>
using namespace std;

stringstream ss;
double d = 3.141;

ss << d;

const char* psz = ss.str().c_str();
0

LVL 1

Accepted Solution

Shivshankar earned 400 total points
ID: 6990993
I'd suggest you rather use sprintf.

sprintf(str, "%5.2f", some_float_number);

The simplest solution that I always use. More importantly I get it in whatever format I want. :-)
0

LVL 1

Author Comment

ID: 6991172
I cannot use printf... The program runs under Windows....
So.... I need the string to use the API DrawText ()....
I will see what is _gcvt about....

0

LVL 1

Expert Comment

ID: 6991245
> I cannot use printf... The program runs under Windows....
>So.... I need the string to use the API DrawText ()....

sprintf works fine under windows. Just sprintf to a buffer and use DrawText on that buffer.

char str[100];

sprintf(str, "%5.2f", some_float_number);

DrawText(hDC,str,strlen(str),rect,uFormat);

// see the doc for DrawText for a description of the params.

Are you using MFC. If so use the following;

//cdc is a CDC for the window you need to draw on.

CString str;

str.Format("%5.2f", some_float_number);

cdc.DrawText(str,rect,nFormat);

John
0

LVL 1

Expert Comment

ID: 6993412
0

LVL 1

Author Comment

ID: 7014651
All anwsers were good, but Shivshankar's was the first...

Thank you.
0

LVL 86

Expert Comment

ID: 7014681
>>but Shivshankar's was the first...

From: Shivshankar  Date: 05/06/2002 02:47AM PST

Comment
From: jkr  Date: 05/05/2002 02:51PM PST

That is a whole *day* later...
0

LVL 1

Author Comment

ID: 7016376
jkr:

Let me know if you want me to post some question with points for you.
0

LVL 1

Expert Comment

ID: 7019660
Yes jkr,

I'm a day later than you.
But, I guess, its a simple and straightforward solution.

Best Regards.
0

LVL 1

Author Comment

ID: 7022613
Shivshankar

If we talk about to be fair...
Actually you are right

:-)
0

## Featured Post

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Often, when implementing a feature, you won't know how certain events should be handled at the point where they occur and you'd rather defer to the user of your function or class. For example, a XML parser will extract a tag from the source code, whâ€¦
Many modern programming languages support the concept of a property -- a class member that combines characteristics of both a data member and a method.  These are sometimes called "smart fields" because you can add logic that is applied automaticallâ€¦
The viewer will learn how to use the return statement in functions in C++. The video will also teach the user how to pass data to a function and have the function return data back for further processing.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.
###### Suggested Courses
Course of the Month9 days, 21 hours left to enroll