Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Общие вопросы > Как "склеит" строку из строк и переменной double ?


Автор: Гость_Wladislav 7.1.2004, 11:51
Привет! biggrin.gif

У меня ужасно простой вопрос, но ответа я не знаю.

Я хочу собрать строку из малых строчек и чисел. Ранее я делал так
Пример:

int X = 150;
int Y = 12;
AnsiString S;
S = "Числа: " + IntToStr(X) + " и " + IntToStr(Y);

Т.е. я пользовался оператором IntToStr() и всё было Ок !

Но появилась необходимость запихнуть в строку дробное число, например 2.5 или 7.05 .
И этот оператор говорит ошибку. Я с ним согласен, но от этого мне не легче.

Помогите! sad.gif

Автор: NiJazz 7.1.2004, 12:30
Кажись, для этого есть FloatToStr.

Автор: Guest 7.1.2004, 12:44
О!
Точно! Спасибо!
А я то думал, что FloatToStr только для real-переменных.!

СПАСИБО ! thumbs-up.gif thumbs-up.gif biggrin.gif thumbs-up.gif thumbs-up.gif

Автор: Unregistered 7.1.2004, 14:25
У меня ещё проблема возникла.

Надо формат настроить.
Т.е. если число B = 20.56 , то чтоб выводило в Label1 в виде такого числа: "20.5600".
Но нули не пишутся! Вот в этом и весь вопрос.

Автор: NiJazz 7.1.2004, 19:04
Насколько я помню, тип Label1->Caption - это AnsiString. Это нужно учесть.
А чтобы нулей было достаточно, можно написать функцию, работающую со строкой и проверяющую количество цифр после точки. Их должно быть четыре, то есть если меньше четырёх, то соответственно забиваем всё нулями.

Автор: Paradox 7.1.2004, 20:09
Код
char* str=FloatToStr(a);
char* frac=strtok(str,'.');
frac=strtok(NULL,'.');
int len=strlen(frac);
while (len<=4) {frac+='0'; len++}

ИМХО так
еще надо
Код
#include <string.h>

код не проверял, но вроде джолжно работать

Автор: Dov 7.1.2004, 21:47
Для форматирования используй FloatToStrF или FormatFloat

Автор: mr.DUDA 7.1.2004, 21:55
Советую обратить внимание на функции из стандартной библиотеки C++
Код
char strResult[100];
float fNum = 20.56;
int  iNum = 123;
sprintf(strResult, "Числа: %.4f  и  %d", fNum, iNum);

Результат потом можно из strResult запихнуть в AnsiString.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)