Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 10.06.2014, 17:11
'Zanuda' 'Zanuda' вне форума
Прохожий
 
Регистрация: 01.04.2014
Сообщения: 17
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию Округление значений в Memo

Здравствуйте, не могу разобраться, как округлить получившиеся значения. Вроде просто, если округляются числовые типы данных, и мне нужно округлить числа в строках Мемо, чтобы не было такого:
Код:
4.0E+0000    3.0E+0000   -1.0E+0000   
 0.0E+0000    4.8E+0000    1.3E+0000   
 0.0E+0000    0.0E+0000    7.5E+0000  
Пробовал переводить 's' в Float, округлять, а потом опять в строку, но отладчик ругается, мол 4.8E+0000, например, is not a valid floating point value. Кучу методов округления перебрал, все равно такая ошибка. подскажите, если знаете.

Код:
Memo1.Font.Name:='Courier New';
Memo1.Lines.Add('Новая матрицаÍ');
for i:=0 to n-1 do
 begin
  s:='';
  for j:=0 to n-1 do
   begin
   a[i,j]:=strtofloat(StringGrid2.Cells[j,i]);
    str(a[i,j]:2,s1);
    s:=s+s1+'  ';
   end;
   Memo1.Lines.Add(s);
 end;
 end;
end;
Ответить с цитированием
  #2  
Старый 10.06.2014, 17:18
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Zanuda
Пробовал переводить 's' в Float, округлять, а потом опять в строку, но отладчик ругается, мол 4.8E+0000, например, is not a valid floating point value. Кучу методов округления перебрал, все равно такая ошибка. подскажите, если знаете.
Ругается, потому что у тебя в настройках Windows разделителем целой и дробной части указана запятая, а не точка - можно использовать глобальную переменную DecimalSeparator для решения этой проблемы.
Цитата:
Сообщение от Zanuda
Код:
.....
    str(a[i,j]:2,s1);
.....
А если вместо функции Str использовать функцию FloatToStr (или FloatToStrF)?
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
'Zanuda' (10.06.2014)
  #3  
Старый 10.06.2014, 17:24
'Zanuda' 'Zanuda' вне форума
Прохожий
 
Регистрация: 01.04.2014
Сообщения: 17
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Спасибо, помогло. Искал ошибку, как это часто бывает, не в том месте.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 08:41.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter