Форум С++

 

Ответить на сообщение

Вернуться к теме

Вы отвечаете на сообщение:

Автор: alex19921992   (26.11.2007 в 03:25)
я придумал хорошую функцию преобразования числа 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 знаков после запятой


Ваше имя:

Пароль:

Цитировать

Используйте тэги для выделения текста:
Код: [code][/code]
Жирный: [b][/b]
Наклонный: [i][/i]
URL: [url][/url]

Сообщение:

Прикрепить: