Страница 1 из 1

преоброзование в число с точкой

Добавлено: 29 сен 2004, 04:45
admsasha

Код: Выделить всё

int main ()
{
long a;
char b[100];
a=6/2.5;
sprintf(b,"%i \n",a);
printf("%s",b);

}
ответ "2", т.е. без точки, как преоброзовать с точкой ?

Добавлено: 29 сен 2004, 09:42
versus
как преобразовать с точкой?
спецификацию к *printf почитать

Код: Выделить всё

int main () 
{ 
long a; 
char b[100]; 
a=6/2.5; 
sprintf(b,"%.2f \n",a); /* печать с двух знаков после точки */
printf("%s",b); 

}

Добавлено: 29 сен 2004, 16:59
Kolinus
/ - при целом типе даст целую часть.
Поэтому надо использовать тип double или float для а.

Добавлено: 30 сен 2004, 05:45
Hup
В строку...
Converts a floating-point value to a string, which it stores in a buffer.

char *_gcvt(
double value,
int digits,
char *buffer
);
Parameters
value
Value to be converted.
digits
Number of significant digits stored.
buffer
Storage location for result.
Return Value
_gcvt returns a pointer to the string of digits. There is no error return.
Пример:

Код: Выделить всё

char Bf[20];
double VAL = 1.234; 
gcvt(VAL,5,Bf);
В число...
Например:

Код: Выделить всё

double GetDlgItemDouble(HWND hDlg, int id)
{
    TCHAR *pEnd;
    TCHAR szItemText[20];
    GetDlgItemText(hDlg, id, szItemText, 20);
    return strtod(szItemText, &pEnd);
}