Мастера DELPHI, Delphi programming community Рейтинг@Mail.ru Титульная страница Поиск, карта сайта Написать письмо 
| Новости |
Новости сайта
Поиск |
Поиск по лучшим сайтам о Delphi
FAQ |
Огромная база часто задаваемых вопросов и, конечно же, ответы к ним ;)
Статьи |
Подборка статей на самые разные темы. Все о DELPHI
Книги |
Новинки книжного рынка
Новости VCL
Обзор свежих компонент со всего мира, по-русски!
|
| Форумы
Здесь вы можете задать свой вопрос и наверняка получите ответ
| ЧАТ |
Место для общения :)
Орешник
Коллекция курьезных вопросов из форумов
Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / rsdn.org

 
Чтобы не потерять эту дискуссию, сделайте закладку « предыдущая ветвь | форум | следующая ветвь »

Float2Str [Delphi, Windows]


Dimaxx ©   (22.03.20 18:38

Доброго времени суток.

Есть ли для КОЛа нормальный сабж? Extended2Str и прочие в КОЛе переводят большие числа в неэкспоненциальный формат. Format использует обрезок без поддержки плавающих форматов. Str из System неудобна для целых чисел. Помню писал замену Format на _vsnprintf, но нормальной работы не смог добиться опять-таки для плавающего формата. Выдирать из SysUtils тонны зависимого кода тоже нет желания.


dmk ©   (23.03.20 17:01[1]

Писал давно такую функцию. Можете доработать под себя:
http://forum.delphimaster.net/cgi-bin/forum.pl?id=1492345608&n=3


Dimaxx ©   (24.03.20 09:10[2]

Благодарю. Вечером уволоку, покопаюсь. Я уже набросал на асме double2str, вроде работает, но не справляется с простыми числами типа 1.77. С большими работает на ура.


dmk ©   (24.03.20 09:59[3]

У меня корректно работает со всем диапазоном Double.


Dimaxx ©   (25.03.20 00:35[4]

Все оказалось банальнее:

function _gcvt(value: double; digits: integer; buffer: PAnsiChar): PAnsiChar; cdecl; external 'msvcrt.dll';

function Double2Str(D: double): string;
var Buf: array[0..1023] of char;
begin
 _gcvt(D,15,@Buf[0]);
 Result:=Buf;
end;


правда работает только с double, extended не катит.


Dimaxx ©   (25.03.20 00:53[5]

var Buf: array[0..31] of char; вполне достаточно


версия для печати

Написать ответ

Ваше имя (регистрация  E-mail 







Разрешается использование тегов форматирования текста:
<b>жирный</b> <i>наклонный</i> <u>подчеркнутый</u>,
а для выделения текста программ, используйте <code> ... </code>
и не забывайте закрывать теги! </b></i></u></code> :)


Наверх

  Рейтинг@Mail.ru     Титульная страница Поиск, карта сайта Написать письмо