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

Delphi Sources



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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 19.05.2009, 10:46
Ksully Ksully вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 23
Репутация: 10
По умолчанию округление

Подскажите пожалста...
Я округляю полученные цифры в стрингриде так:
Код:
 Form3.StringGrid1.Cells[0,i]:=FloatToStr(RoundTo(w, -2));
  Form3.StringGrid1.Cells[1,i]:=FloatToStr(RoundTo(Re, -2));

потом мне нужно снова обратиться к этим цифрам
Код:
 Pobsie:=Pgeom+strtofloat(StringGrid5.Cells[4,i])+strtofloat(StringGrid4.Cells[3,i])+strtofloat(StringGrid3.Cells[1,i])+strtofloat(StringGrid3.Cells[2,i])+strtofloat(StringGrid2.Cells[5,i])+strtofloat(StringGrid1.Cells[2,i]);
Т.е. мне нужно сложить все округленные цифры из разных стрингридов, до округления все работало, после округления начал выдавать ошибку при расчете "is not valid floating point value" ????
Ответить с цитированием
  #2  
Старый 19.05.2009, 11:17
roamer roamer вне форума
Активный
 
Регистрация: 15.04.2009
Сообщения: 369
Репутация: 93
По умолчанию

Может это поможет :
Код:
function _StrToExtended(Sx:string; DefR : Extended) : Extended;
Var
  Res : integer;
begin
  Sx:=Trim(Sx);
  Sx:=Replace_Char_In_String(Sx,ORD(','),ORD('.'));
  Val(Sx,Result,Res);
  if Res<>0 then Result:=DefR;
end;


function Replace_Char_In_String(Sx : string; asciCodeOLD, asciCodeNEW : integer) : string;
{Заменить символы в строке}
Var
  i : integer;
begin
  Result:=Sx;
  for i:=1 to length(Result) do
   begin
    if ORD(Result[i])=asciCodeOLD then Result[i]:=CHR(asciCodeNEW);
  end;
end;
Ответить с цитированием
  #3  
Старый 19.05.2009, 11:35
Аватар для AleD
AleD AleD вне форума
Активный
 
Регистрация: 21.02.2009
Адрес: г.Краснокаменск
Сообщения: 383
Репутация: 91
По умолчанию

точки запятыми меняйте при конвертирование в Float, или запятые точками, непомню
__________________
TAleD = class(TUser)
public
function HelpMe(ASubject, ARequest: String): String;
function GiveMeExample(ASubject: String): TStringList;
procedure WriteReview(APost: Integer; ADescription: TStringList);
end;
Ответить с цитированием
  #4  
Старый 20.05.2009, 20:22
Ksully Ksully вне форума
Прохожий
 
Регистрация: 17.04.2009
Сообщения: 23
Репутация: 10
По умолчанию

Подскажите.... может функция округления плохо работать...????
Пишу везде одинаково, но почему то все округляет нормально, а один столбец превращает в нули, пробовала разные способы округления
Код:
 Form3.StringGrid5.Cells[0,i]:=FloatToStrF(w, ffNumber,15,2);
  Form3.StringGrid5.Cells[1,i]:=FloatToStrF(KsiVx, ffNumber,15,2);
  Form3.StringGrid5.Cells[2,i]:=FloatToStrF(KsiVix, ffNumber,15,2);
  Form3.StringGrid5.Cells[3,i]:=FloatToStrF(KsiPl,ffNumber,15,2);
  Form3.StringGrid5.Cells[4,i]:=FloatToStrF(Pfil, ffNumber,15,2);
4-ый столбец превращает в нули.... с чем это может связано???
Ответить с цитированием
Ответ


Delphi Sources

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

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

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

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


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


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

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

ВКонтакте   Facebook   Twitter