Модераторы: volvo877, Snowy, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Real to String, Конвертация с округление 
:(
    Опции темы
uvsoft
  Дата 6.3.2005, 14:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 123
Регистрация: 4.2.2003

Репутация: нет
Всего: нет



Привет, есль дешевый вопросить по поводу конвертации на чистом паскале типа real в string.
Например, есть число: 2.000000000e-0001, то строка, воспользовавшись функцией STR, будет иметь точно такой же вид.... а нужно получить нечто вроде "0.2". Подскажите, плз, существуют ли встроенные средства для проделывания подобных операций, или придется самому писать алгоритм перевода?
Спасибо.

Это сообщение отредактировал(а) uvsoft - 6.3.2005, 14:07
--------------------
Старый глюк лучше новых двух.
PM MAIL ICQ   Вверх
Fedor
Дата 6.3.2005, 14:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Вот пример:
Код

var
 c:real;
 s:string;
begin
 c:=0.2;
 str(c:0:1,s);
 writeln(s);
end.

Здесь :0:1 - формат числа. 0 - количество символов, которые должно занимать число. 1 - количество символов после запятой.

Это сообщение отредактировал(а) Fedor - 6.3.2005, 14:19


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
Zero
Дата 6.3.2005, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2169
Регистрация: 23.10.2004
Где: Россия, г. Рязань

Репутация: нет
Всего: 24



Цитата(Fedor @ 6.3.2005, 14:18)
количество символов, которые должно занимать число
Ни совсем верно сказано.
<Параметр1> ─ указывает минимальную длину поля, в которую будет записыватся символьное представление значения, а если пареметр будет иметь меньшую длину, то слева будут пробелы, иначе <параметр 1> игнорируется и будет нужная длина.
PM MAIL ICQ   Вверх
Fedor
Дата 6.3.2005, 15:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Днепрянин
****


Профиль
Группа: Участник
Сообщений: 2090
Регистрация: 8.2.2003
Где: Великий

Репутация: нет
Всего: 32



Цитата(Zero @ 6.3.2005, 13:58)
<Параметр1> ─ указывает минимальную длину поля, в которую будет записыватся символьное представление значения, а если пареметр будет иметь меньшую длину, то слева будут пробелы, иначе <параметр 1> игнорируется и будет нужная длина.

Согласен с замечанием. Спасибо.


--------------------
Мы - Днепряне. Мы всех сильней.
PM ICQ   Вверх
poor_yorik
Дата 3.4.2005, 15:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 148
Регистрация: 12.1.2005
Где: Общаги г. Киева

Репутация: нет
Всего: 8



Eсли дробь конечная, но ты сам не знаешь какой у нее размер, то подойдет такая процедура.
smile
Код

 c:=0,2;
 c:=c - int(c);
 i:=0; 
 while c<>0 do begin
   inc(i); 
   c:=c*10 - int(c*10); 
 end; 
 str(c:0:i,s); 
 writeln(s);

--------------------
Семь раз отмерь, один раз - откомпиль.... Семь раз отпей, один раз - отлей... Семь раз отъешь, один раз - не жадничай и другим дай...
PM MAIL YIM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi"
THandle
Rrader
volvo877

Запрещается!

1. Обсуждать и делится взломанными компонентами или программным обеспечением

2. Публиковать ссылки на варез

3. Оффтопить

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, THandle, Rrader, volvo877.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Object Pascal: кроссплатформенные технологии | Следующая тема »


 




[ Время генерации скрипта: 0.0454 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.