![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Код:
var f1,k1,a1,b1,c1,d1: real; begin a1:=StrToFloat(Edit1.Text); b1:=StrToFloat(Edit2.Text); c1:=StrToFloat(Edit3.Text); d1:=StrToFloat(Edit4.Text); k1:=(a1+b1+c1+d1); f1:=(2* a1+3* b1+4* c1+5* d1)/k1; label1.Caption:=FloatToStrF(f1,ffFixed,1,1); Как мне сделать, чтобы если значения a1=1, b1=1, c1=1, d1=1, то в Label выводлися бы ответ не «3,5», а ответ был бы равен «3.5»? Подскажите пожалйста на моем примере! |
#2
|
|||
|
|||
![]() Не понятно, у тебя при таком условии результат в Label будет 3.5 , а какой нужен? Если разделитель точка нужна "." - это в настройках Windows меняется
Последний раз редактировалось PashaXP, 05.08.2008 в 13:53. |
#3
|
|||
|
|||
![]() А если програмно, то
Код:
procedure TForm1.Button1Click(Sender: TObject); var f1,k1,a1,b1,c1,d1: real; str:string; begin a1:=StrToFloat(Edit1.Text); b1:=StrToFloat(Edit2.Text); c1:=StrToFloat(Edit3.Text); d1:=StrToFloat(Edit4.Text); k1:=(a1+b1+c1+d1); f1:=(2* a1+3* b1+4* c1+5* d1)/k1; str:=FloatToStrF(f1,ffFixed,1,1); if Pos(',',str)<>0 then str[Pos(',',str)]:='.'; label1.Caption:=str; end; |
#4
|
||||
|
||||
![]() Ответ будет не в виде "3.5", а в виде "3,5"(. Если у меня будет стоять FloatToStrF(f1,ffFixed,1,1), то ответ будет с запятой. Например, если даже ответ целый получается, то в Label ответ выведется например так: "4,0". А если написать просто FloatToStr(f1), то будет выводится дробь длинная. Но мне нужно, чтобы я в StringGrid-е мог сложить по столбцам. Эту сумму мне надо разделить на четыре и вывести в ячейку таблицы. Но мне программа выдает ошибку: "3,5 is not valid integer value". Что мне сделать, чтобы заработало? Подскажите пожалуйста!)). А как изменить в настройках Windows?
|
#5
|
|||
|
|||
![]() Как выше сделал не подходит?
|
#6
|
|||
|
|||
![]() Пуск -> Настройка -> Панель управления -> Язык и региональные стандарты. Нажми кнопку "настройка", там увидешь
Но тебе, так понял, не это нужно. Тебе округлять что-ли значения до цеглого нужно? Последний раз редактировалось PashaXP, 05.08.2008 в 14:19. |
#7
|
|||
|
|||
![]() 1. Label3.Caption := StringReplace(Str, ',', '.', []);
2. Системные настройки лучше не трогать, потому как глюков не меряно можно схватить при использовании других программ, которые под русскую локаль настроены. |