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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2010, 14:49   #1
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию плавающая точка

Добрый день
Подскажите, что не так в коде:
Код:
procedure TForm1.Button1Click(Sender: TObject);
 var s:string; n:extended;
begin
 s:='0.34';
 n:=strtofloat(s)*20;
 edit2.Text:=floattostr(n);
end;
Вопрос конечно жутковат, но всегда думал что strtofloat именно так должна работать, пока впервые не столкнулся
varelik вне форума Ответить с цитированием
Старый 12.05.2010, 15:03   #2
vizir1989
 
Регистрация: 07.05.2010
Сообщений: 9
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
 var s:string; n:extended;
begin
 s:='0.34';
 n:=strtofloat(s)*20;
 edit2.Text:=floattostr(n);
end;
на сколько я знаю ставиться запятая (0,34), а не точка.
vizir1989 вне форума Ответить с цитированием
Старый 12.05.2010, 15:06   #3
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

По-моему, это (запятая или точка) определяется настройками Винды... По-умолчанию - запятая...
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 12.05.2010, 15:14   #4
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

Вот кстати да, действительно, запятая, спасибо.
Теперь, что на самом деле нужно:
эта строка S='0.34' приходит с внешнего устройства на ПК. Как бы эту точку вырезать и заменить на запятую?
Есть pos для определения положения точки в строке. Есть delete для удаления из строки. А вот для замены символа что нибудь типа paste есть?
varelik вне форума Ответить с цитированием
Старый 12.05.2010, 15:16   #5
Grag
А может и не...
Участник клуба
 
Аватар для Grag
 
Регистрация: 27.03.2010
Сообщений: 1,269
По умолчанию

Код:
if Pos('.',S)<>0 then
  S[Pos('.',S)]:=','
Перемешивай дело с бездельем и не сойдешь с ума...
Grag вне форума Ответить с цитированием
Старый 12.05.2010, 15:30   #6
varelik
Форумчанин
 
Регистрация: 21.08.2009
Сообщений: 140
По умолчанию

а, ну да, либо както так:
for n:= 1 to length(s) do
if s[n] = '.' then s[n]:= ','
спасибо за подсказку
varelik вне форума Ответить с цитированием
Старый 12.05.2010, 15:33   #7
Alexandr90
Новичок
Джуниор
 
Регистрация: 12.05.2010
Сообщений: 2
Вопрос спасите

В заданном тексте подсчитать количество строчных букв
Alexandr90 вне форума Ответить с цитированием
Старый 12.05.2010, 15:37   #8
Sibedir
Тот ещё
Старожил
 
Аватар для Sibedir
 
Регистрация: 14.11.2007
Сообщений: 2,242
По умолчанию

Ну, можно еще вот так
Код:
  DecimalSeparator := '.';
  s := '0.34';
  n := StrToFloat(s) * 20;
  Edit2.Text := FloatToStr(n);
Sibedir вне форума Ответить с цитированием
Старый 13.05.2010, 02:43   #9
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 28.11.2007
Сообщений: 1,521
По умолчанию

Вот ещё вариант для замены:
Код:
Procedure TForm1.Button1Click(Sender: TObject);
Begin
Edit1.Text:=StringReplace(Edit1.Text,'.',',',[RfReplaceAll]);
End;
Всегда рад помочь!
Terran вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибка " is not a valid floating point value " (не правильная плавающая величина точки) kta87 Помощь студентам 5 27.09.2012 19:37
Плавающая кнопка - возможно ли kzld Microsoft Office Excel 2 02.02.2010 10:32
Плавающая панель dani92 Общие вопросы Delphi 15 04.11.2009 17:02
Dockbar или плавающая панель с ярлыками Hronos13 Qt и кроссплатформенное программирование С/С++ 0 04.05.2009 12:19
Помогите плз, нужна плавающая ячейка linitz Microsoft Office Excel 7 19.09.2008 13:34