|
|
|
| Здравствуйте!
Скажите, плз, как ограничить число выводимых символов в ShowMessage (в C++Builder) ? | |
|
|
|
|
|
|
|
для: Kostia89
(25.11.2007 в 08:27)
| | Не очень понятна проблема... Сколько хотите, столько и выводите... Или имеется в виду количество символов на одной строке? Если последнее - необходимо просто добавить символ перевода строки \r\n, чтобы вывод следующего фрагмента шёл с новой строки. | |
|
|
|
|
|
|
|
для: cheops
(25.11.2007 в 08:32)
| | Нет. Т.е. я вывожу число (среднее арифметическое) типа double и надо ог7раничить число символов после запятой. | |
|
|
|
|
|
|
|
для: Kostia89
(25.11.2007 в 09:20)
| | я придумал хорошую функцию преобразования числа double в строку:
void ftoa(char* r,float f)
{
int loop;
char a[79];
int i1,i2;
strcpy(a,ecvt(f,15,&i1,&i2));
if(i1>0)
{
for(loop=strlen(a)+1;loop!=i1;loop--)
{
a[loop]=a[loop-1];
}
a[loop]='.';
}
/////////////
if(i1==0)
{
for(loop=strlen(a)+2;loop!=1;loop--)a[loop]=a[loop-2];
a[1]='.';a[0]='0';
}
/////////////
if(i1<0)
{
for(loop=strlen(a)+2-i1;loop!=1;loop--)a[loop]=a[loop-2+i1];
a[1]='.';
a[0]='0';
for(loop=2;loop<2-i1;loop++)a[loop]='0';
}
if(i2!=0)
{
for(loop=strlen(a)+1;loop>0;loop--)a[loop]=a[loop-1];
a[0]='-';
}
strcpy(r,a);
}
|
просто преобразуйте число в строку и найдите в строке точку(сделайте циклом). далее от точки отступите N символов вправо и поставьте туда символ '\0' тогдо у вас будет N-1 знаков после запятой | |
|
|
|
|
|
|
|
для: Kostia89
(25.11.2007 в 09:20)
| | Тогда удобно воспользоваться функцией printf()
#include <stdio.h>
using namespace std;
int main()
{
double var = 2.343425234525;
printf("%10.2f", var);
return 0;
} |
| |
|
|
|
|
|
|
|
для: cheops
(26.11.2007 в 03:58)
| | Так ему-то мессачбокс надо! принтфом тоже можно))))
а еще можно сделать такой изврат: делать временный файл, туда printf("%10.2f", var);
а потом читать как %s | |
|
|
|
|
|
|
|
для: alex19921992
(26.11.2007 в 05:57)
| | В ShowMessage передается строка типа AnsiString, а вней есть метод printf, т.е. можно сделать так:
AnsiString s;
s.printf("Вещественное число с двумя знаками после запятой: %10.2f",23.1234);
ShowMessage(s);
|
| |
|
|
|
|
|
|
|
для: Фитч
(27.11.2007 в 00:02)
| | Заработало! Спасибо большое! | |
|
|
|