![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
leo |
|
|||
Unregistered |
Как число float переделать в строку(с точкой)?
int n=5; char p; itoa(n,p,10);-Это для инт, а что с флоат? |
|||
|
||||
skaa |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 9 Регистрация: 24.12.2002 Где: Skokie, IL Репутация: нет Всего: нет |
Используй sprintf.
|
|||
|
||||
Step |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5151 Регистрация: 26.9.2002 Где: дурдом.UA Репутация: 5 Всего: 25 |
или printf если на экран надо
-------------------- - Дурак учится на своих ошибках, умный на чужих. - умные учатся у дураков |
|||
|
||||
leo |
|
|||
Unregistered |
не на экран надо,а в строку CString.
|
|||
|
||||
Sun |
|
|||
Account removed ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 1611 Регистрация: 14.8.2002 Репутация: нет Всего: 48 |
А чем плохо ftoa()? Кстати если мне не изменяет память в CString есть конструктор для float.
-------------------- Account removed |
|||
|
||||
dim |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 106 Регистрация: 24.12.2002 Репутация: нет Всего: нет |
В CString должен быть метод Format.
--------------------
that's all |
|||
|
||||
mavrik |
|
|||
Новичок Профиль Группа: Участник Сообщений: 6 Регистрация: 5.1.2003 Репутация: нет Всего: нет |
CString::Format("%f",f) - она автоматическм произведет расп памяти
или %.nf где n кол-во знак посл запят. работает через тот же sprintf |
|||
|
||||
brb |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 190 Регистрация: 7.1.2003 Репутация: нет Всего: нет |
float f;
char *p; /************** c++ **************/ p = AnsiString((double)f); /************* c *************/ #include <stdlib.h> #include <stdio.h> int main(void) { char *str; double num; int dec, sign, ndig = 5; /* a regular number */ num = 9.876; str = fcvt(num, ndig, &dec, &sign); /* printf("string=%10s decimal place=%d sign=%d\n", str, dec,sign); a negative number */ num = -123.45; str = fcvt(num, ndig, &dec, &sign); /* printf("string=%10s decimal place=%d sign=%d\n", str, dec, sign); scientific notation */ num = 0.678e5; str = fcvt(num, ndig, &dec, &sign); /* printf("string=%10s decimal place=%d sign=%d\n", str, dec, sign); */ return 0; } --------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети. |
|||
|
||||
Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 2 Всего: 22 |
еще есть wsprintf
и потом в СString из LPSTR. |
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
А почему у меня ftoa() не работает, т.е. "C:\DKG\CCCC\calcul\calculDlg.cpp(260) : error C2065: 'ftoa' : undeclared identifier" ? ![]() Проблема та же: хочу из float перевести в CString и вывести в edit ! Или как-то ещё можно это осуществить? ![]() ЗЫ: С++ только-только начинаю осваивать.... -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
VaiMR |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 67 Регистрация: 25.11.2006 Репутация: нет Всего: 2 |
Отделяй целую и вещественную части, преобразуй их в строки и соединяй их через разделитель (точка или запятая).
|
|||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Эм... Вернёмся чуть назад. Похоже, что значение summa не передаётся в par1. Почему?!
-------------------- There's nothing left but silent epitaphs. |
|||
|
||||
zkv |
|
|||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
||||
|
||||
Данкинг |
|
|||
![]() Yersinia pestis ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 8302 Регистрация: 7.11.2006 Где: მოსკოვი Репутация: нет Всего: 130 |
Тут я понял, всё ОК. ![]() Спасибо, с форматом получилось! ![]() 1) Можно ли как-то вывести только целую часть float, если дробной нет (8.00000000) ? Или обрезать вручную - единственный вариант? 2) Как получить текст из текстового поля (edit1) ? -------------------- There's nothing left but silent epitaphs. |
|||
|
||||
zkv |
|
||||
![]() ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2133 Регистрация: 23.7.2006 Где: Санкт-Петербург Репутация: 26 Всего: 92 |
если дробной нет то будет выведено без нее, а вообще поизучай форматы (%d %f %s %x и тд), в них можно много чего задавать например %3.1f - формат для флоат с тремя цифрами из целой части и одной из дробной (возможно я ошибаюсь в синтаксисе). простой путь - в редакторе ресурсов прицепляем к Edit'у control variable (напрмер m_MyEdit), потом в нужном нам месте пишем что нить такое:
хотя можно получить его (текст) и по ID контрола - не помню функцию Это сообщение отредактировал(а) zkv - 24.1.2007, 10:49 |
||||
|
|||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |