Модераторы: Daevaorn

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> float to char 
:(
    Опции темы
leo
Дата 9.1.2003, 00:34 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Как число float переделать в строку(с точкой)?

int n=5;
char p;
itoa(n,p,10);-Это для инт, а что с флоат?
  Вверх
skaa
Дата 9.1.2003, 00:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 24.12.2002
Где: Skokie, IL

Репутация: нет
Всего: нет



Используй sprintf.
PM MAIL WWW   Вверх
Step
Дата 9.1.2003, 01:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 5151
Регистрация: 26.9.2002
Где: дурдом.UA

Репутация: 5
Всего: 25



или printf если на экран надо


--------------------
- Дурак учится на своих ошибках, умный на чужих.
 - умные учатся у дураков
PM MAIL ICQ   Вверх
leo
Дата 9.1.2003, 02:48 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











не на экран надо,а в строку CString.
  Вверх
Sun
Дата 9.1.2003, 03:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Account removed
***


Профиль
Группа: Экс. модератор
Сообщений: 1611
Регистрация: 14.8.2002

Репутация: нет
Всего: 48



А чем плохо ftoa()? Кстати если мне не изменяет память в CString есть конструктор для float.
Код

float f;
...
String s1 = new String(f);
...
String s2 = ftoa(f);



--------------------
Account removed
PM MAIL   Вверх
dim
Дата 9.1.2003, 03:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 24.12.2002

Репутация: нет
Всего: нет



В CString должен быть метод Format.
--------------------
that's all
PM MAIL   Вверх
mavrik
Дата 9.1.2003, 03:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 5.1.2003

Репутация: нет
Всего: нет



CString::Format("%f",f) - она автоматическм произведет расп памяти
или %.nf где n кол-во знак посл запят.
работает через тот же sprintf
PM MAIL   Вверх
brb
Дата 9.1.2003, 04:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 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;
}
--------------------
Сказки - удивительная вещь! Самое удивительное, что в них верят только маленькие дети, которым их рассказывают мамы и мамы, которым их рассказывают подросшие дети.
PM MAIL   Вверх
Vaulter
Дата 9.1.2003, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1724
Регистрация: 30.12.2002
Где: бункер

Репутация: 2
Всего: 22



еще есть wsprintf
и потом в СString из LPSTR.


--------------------
PM MAIL WWW ICQ   Вверх
Данкинг
Дата 23.1.2007, 16:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата(Sun @ 9.1.2003,  03:16)
А чем плохо ftoa()? 

А почему у меня ftoa() не работает, т.е. 
"C:\DKG\CCCC\calcul\calculDlg.cpp(260) : error C2065: 'ftoa' : undeclared identifier" ? smile 
Проблема та же: хочу из float перевести в CString и вывести в edit !
Или как-то ещё можно это осуществить? smile 

ЗЫ: С++ только-только начинаю осваивать....


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
VaiMR
Дата 23.1.2007, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 67
Регистрация: 25.11.2006

Репутация: нет
Всего: 2



Отделяй целую и вещественную части, преобразуй их в строки и соединяй их через разделитель (точка или запятая).
PM MAIL ICQ   Вверх
Данкинг
Дата 23.1.2007, 16:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Эм... Вернёмся чуть назад. Похоже, что значение summa не передаётся в par1. Почему?!

Код


CString summa,oper;
float res,par1,par2;

<...>

void CCalculDlg::OnButton16() 
{
    par1=atof(summa);
    summa="";
    m_rrr.SetWindowText ("");
    oper="+";
}



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
zkv
Дата 23.1.2007, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(Данкинг @  23.1.2007,  16:55 Найти цитируемый пост)
Похоже, что значение summa не передаётся в par1.

чего чего?
Цитата(Данкинг @  23.1.2007,  16:21 Найти цитируемый пост)
Проблема та же: хочу из float перевести в CString и вывести в edit !

Код

//для флоат
float fl = 3.14;
CString str;
str.Format("Pi == %f", fl );
//для дабл
float dbl = 3.14;
CString str;
str.Format("Pi == %lf", dbl );

PM MAIL   Вверх
Данкинг
Дата 24.1.2007, 09:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: нет
Всего: 130



Цитата

чего чего?

Тут я понял, всё ОК.  smile 

Спасибо, с форматом получилось! smile Теперь ещё 2 вопроса появилось (может, не совсем сюда, но новую тему ради этого начинать смысла нет):
1) Можно ли как-то вывести только целую часть float, если дробной нет (8.00000000) ? Или обрезать вручную - единственный вариант?
2) Как получить текст из текстового поля (edit1) ?



--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
zkv
Дата 24.1.2007, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 26
Всего: 92



Цитата(Данкинг @  24.1.2007,  09:59 Найти цитируемый пост)
1) Можно ли как-то вывести только целую часть float, если дробной нет (8.00000000) ? Или обрезать вручную - единственный вариант?

если дробной нет то будет выведено без нее, а вообще поизучай форматы (%d %f %s %x и тд), в них можно много чего задавать например %3.1f - формат для флоат с тремя цифрами из целой части и одной из дробной (возможно я ошибаюсь в синтаксисе).
Цитата(Данкинг @  24.1.2007,  09:59 Найти цитируемый пост)
2) Как получить текст из текстового поля (edit1) ?

простой путь - в редакторе ресурсов прицепляем к Edit'у  control variable (напрмер m_MyEdit), потом в нужном нам месте пишем что нить такое:
Код

CString str;
m_MyEdit.GetWindowText( str );

хотя можно получить его (текст) и по ID контрола - не помню функцию

Это сообщение отредактировал(а) zkv - 24.1.2007, 10:49
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0860 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.