powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Странное поведение FloatToStr
8 сообщений из 8, страница 1 из 1
Странное поведение FloatToStr
    #39687426
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такой код:
ShowMessage(FloatToStr(0.00001));

выдаёт на экран 1E-5

Причём любые функции перевода дробного числа в строку так поступают.
Я конечно понимаю, что если число слишком маленькое или слишком большое, то приходится применять "научный" формат, но в данном случае для типа Double это число вовсе не такое уж и маленькое. Поэтому ситуацию считаю странной (или я дурак и чего-то не понимаю). Хотя бы одну функцию предусмотрели бы.
Я в итоге использовал FormatFloat('0.0000000', V) (мне этого достаточно для отображения GPS-координат).
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687430
Tactical Nuclear Penguin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в чем вопрос? прочитайте справку, там это описано...
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687433
MikeDD
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer, RTFM FloatToStrF
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687436
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Описано (эта фича - документирована).

ffGeneral - General number format. The value is converted to the shortest
possible decimal string using fixed or scientific format. Trailing zeros
are removed from the resulting string, and a decimal point appears only
if necessary. The resulting string uses fixed point format if the number
of digits to the left of the decimal point in the value is less than or
equal to the specified precision, and if the value is greater than or
equal to 0.00001. Otherwise the resulting string uses scientific format,
and the Digits parameter specifies the minimum number of digits in the
exponent (between 0 and 4).

Но логику разработчиков не могу разгадать, чем им понравилось именно число 0,00001, а не 0,000001 или 0,0000001. Все эти числа в Double прекрасно умещаются.
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687580
DmSerя дурак и чего-то не понимаюты сам ответил на свой вопрос.
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687583
Фотография makhaon
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer,

возможно не очень читаемые.
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39687884
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот ещё немного полезной информации :)

В C# метод ToString поступает также, т.е. 0.00001.ToString() выдаёт на экране 1E-5. Чувствуется влияние Delphi :)

В JavaScripte научный формат включается для 0.0000001.toString().
...
Рейтинг: 0 / 0
Странное поведение FloatToStr
    #39688073
Фотография X-Cite
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
ShowMessage(FloatToStrF(0.00001, TFloatFormat.ffFixed, 18, 5));
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Странное поведение FloatToStr
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]