C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
1 / 100000 = 1E-05
MGV
Отправлено: 04.07.2004, 19:35


Ученик-кочегар

Группа: Участник
Сообщений: 5



При делении, допустим, 1 на 100000 в результате получается 1E-05.
Каким образом это можно привести в более наглядные "0,00001"?
PeroManiak
Отправлено: 05.07.2004, 00:34


Дежурный стрелочник

Группа: Участник
Сообщений: 71



Могу ошибаться, но поэкспериментируй с sprintf ("%f", &i). Просто почти никогда этим не пользовался
AVC
Отправлено: 05.07.2004, 09:09


Ветеран

Группа: Модератор
Сообщений: 1583



Вопрос некорректен. 0,00001 и есть 1E-5. Если вас интересует форматирование результата к строке то путей много и выбор зависит от цели. Еще способ AnsiString = FormatFloat(fmt,value);
Asher
Отправлено: 05.07.2004, 09:35


Мастер участка

Группа: Модератор
Сообщений: 550



FloatToStrF
MGV
Отправлено: 05.07.2004, 10:11


Ученик-кочегар

Группа: Участник
Сообщений: 5



Спасибо за помощь!
MGV
Отправлено: 05.07.2004, 14:21


Ученик-кочегар

Группа: Участник
Сообщений: 5



Ммм...
Вот например:
CODE
FloatToStrF(output,sffExponent,4,2)

Выдает:
QUOTE
Undefined symbol 'sffExponent'

И так — на любую константу из документации...

Отредактировано MGV — 05/07/2004, 15:24
Asher
Отправлено: 05.07.2004, 15:14


Мастер участка

Группа: Модератор
Сообщений: 550



М...
QUOTE

enum TFloatFormat { ffGeneral, ffExponent, ffFixed, ffNumber, ffCurrency };

Это если у вас функция
extern PACKAGE AnsiString __fastcall FloatToStrF(Extended Value, TFloatFormat Format, int Precision, int Digits);
и использовать как
CODE

double dVal;
...//Бла-бла-бла
AnsiString asMyStrVal = FloatToStrF(dVal, ffExponent,4,2);


а если у вас метод
static AnsiString __fastcall FloatToStrF(long double value, TStringFloatFormat format, int
precision, int digits);
то
QUOTE

enum TStringFloatFormat { sffGeneral, sffExponent, sffFixed, sffNumber, sffCurrency };


И использовать как
CODE

double dVal = 0.00001;
AnsiString asStrVal;
asStrVal.FloatToStrF(dVal, sffExponent, 4 ,2);

И сним действительно такая ботва. Но я тогда бороться не стал. biggrin.gif
Мне функции хватает.

Отредактировано Asher — 05/07/2004, 17:38
Asher
Отправлено: 05.07.2004, 16:19


Мастер участка

Группа: Модератор
Сообщений: 550



Посидел, подумал...
Так работает
asStrVal = AnsiString::FloatToStrF(dVal, AnsiString::sffFixed, 15, 3);
Но кому он такой нужен???
MGV
Отправлено: 06.07.2004, 17:58


Ученик-кочегар

Группа: Участник
Сообщений: 5



Ещё раз спасибо!

Вернуться в Вопросы программирования в C++Builder