Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.06.2017, 17:13   #1
Dpemik
 
Регистрация: 03.06.2017
Сообщений: 6
Сообщение число 2,34569 , нужно преобразовать в строку, сократить до двух символов после запятой и вывести в MEMO

В задаче дано число 2,34569 , нужно преобразовать в строку, сократить до двух символов после запятой и вывести в MEMO. Помогите пожалуйста разобраться
Dpemik вне форума Ответить с цитированием
Старый 03.06.2017, 17:47   #2
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

и на каком этапе возникают проблемы? где код?
Alar вне форума Ответить с цитированием
Старый 03.06.2017, 17:59   #3
Dpemik
 
Регистрация: 03.06.2017
Сообщений: 6
По умолчанию

var a:integer;
begin
a:2,34569
floattostrf(a,fffixed,2,2);

end;

end.
Dpemik вне форума Ответить с цитированием
Старый 03.06.2017, 18:17   #4
eoln
Старожил
 
Аватар для eoln
 
Регистрация: 26.04.2008
Сообщений: 2,645
По умолчанию

Цитата:
сократить
или округлить?
Если округлить, то коротко так
Код:
memo1.lines.Add(floattostrf(2.34569, ffFixed, 18, 2));
Если просто обрезать, то, например, форматнуть на 18 знаков после запятой и обрезать.
Или SetRoundMode + RoundTo http://docwiki.embarcadero.com/CodeE...dMode_(Delphi) тут различные способы округления
eoln вне форума Ответить с цитированием
Старый 03.06.2017, 18:17   #5
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

знак присвоения :=
в конце каждой строки - точка с запятой ;
floattostr для real
для integer - inttostr
http://www.delphibasics.ru/IntToStr.php
округление
http://www.delphibasics.ru/Round.php
да и у тебя как раз таки real переменная должна быть, а не integer.
http://www.delphibasics.ru/Real.php

также нужно в строковую переменную присваивать результат преобразования.

коротко говоря - нужно понимать что ты делаешь, иначе никакой готовый год не поможет ни в чём.
Alar вне форума Ответить с цитированием
Старый 03.06.2017, 19:20   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Dpemik Посмотреть сообщение
В задаче дано число 2,34569 , нужно преобразовать в строку, сократить до двух символов после запятой и вывести в MEMO.
Код:
var 
   d : double;
   s : string;
   posPoint  :  integer;
begin
   d := 2.34569;  //дано число 2,34569 
   s := FloatToStr(d); //преобразовать в строку

   posPoint := Pos('.',s);  // найдём позицию точки в числе
   if posPoint=0 then posPoint := Pos(',',s); // если точки нет, тогда найдём позицию запятой в числе
  
   if posPoint=0 then ShowMessage('У Вас в системе выставлен нестандартный разделитель')
   else begin
     s := Copy(s, 1, posPoint+2); // сократить до двух символов после запятой 
     Memo1.Lines.Append(s); // вывести в MEMO
   end;
end;
p.s. код не проверял.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 03.06.2017, 19:40   #7
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Цитата:
В задаче дано число 2,34569 , нужно преобразовать в строку, сократить до двух символов после запятой и вывести в MEMO
Одной стройкой нельзя?
Код:
     Memo1.Lines.Add('2,34');
А чего не, и преобразовано в строку, и обрезано лишнее, и в мемо засунуто. Других требований не наблюдалось. Шутка конечно ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 03.06.2017, 19:41   #8
Alar
Александр
Администратор
 
Аватар для Alar
 
Регистрация: 28.10.2006
Сообщений: 17,501
По умолчанию

Аватар

да и так сдавали, хотя бы так автор смог бы сам, но он и этого не может.
хорошо, что хоть как-то рыпнулся, получил море советов.
Alar вне форума Ответить с цитированием
Старый 03.06.2017, 20:07   #9
Filka
Форумчанин
 
Регистрация: 29.10.2015
Сообщений: 273
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  Memo1.Lines.Add(FloatToStr(Int(2.34569 * 100.0) / 100.0));
end;
Filka вне форума Ответить с цитированием
Старый 04.06.2017, 00:45   #10
Dpemik
 
Регистрация: 03.06.2017
Сообщений: 6
По умолчанию

Всем большое спасибо, разобрался
Dpemik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удалить все после запятой в memo mitiay Общие вопросы Delphi 51 15.02.2016 17:06
Ограничить число символов после запятой kort95 Общие вопросы Delphi 3 24.12.2013 19:27
Дано целое число N (> 0) и символ C. Вывести строку длины N, которая состоит из символов C. nadyaH Помощь студентам 4 10.11.2013 19:07
Как вывести значения с нужным количеством символов после запятой kity SQL, базы данных 3 17.01.2012 18:16
как вывести число с ограниченным количеством цифр после запятой? delphi Ensoph Помощь студентам 1 02.10.2007 07:50