|
Вопрос # 341/ вопрос решён / |
|
Подскажите, пожалуйста, каким образом можно преобразовывать данные из String в Real?
Ответ #1. Отвечает эксперт: Aymenel
Здравствуйте, Васильев Алексей Александрович!
function StrTofloat(const S: string): Extended;
Пример использования:
var
S: string;
R: real;
begin
S := 3,14;
R := StrToFloat(S);
end;
 |
Ответ отправил: Aymenel (статус: 2-ой класс)
Время отправки: 23 февраля 2007, 18:41
Оценка за ответ: 5
|
Ответ #2. Отвечает эксперт: Вадим К
var
r:real;
s:string;
i:integer;
begin
r:=strtofloat(s);//разделитель-запятая, если у вас русская Windows. Для английской - точка
Val(s,r,i);
//Разделитель всегда точка. Эта процедура не генерит ошибки в случае невозможности преобразовать. Переменная i равна будет нулю, если при преобразовании небыло ошибок.
В противном случае собержит номер символа, который "непонравился". Содержимое переменной-результата при этом считается неопределённым.
====
Матчасть неучим?
 |
Ответ отправил: Вадим К (статус: Академик)
Время отправки: 23 февраля 2007, 18:42
Оценка за ответ: 5
|
Ответ #3. Отвечает эксперт: Лукьяненко Алексей Валериевич
В качестве варианта, чтоб не видеть ошибки и при этом получать хоть что-то, можно использовать StrToFloatEx(Value: String; Default: Extended)
последний параметр - значение по-умолчанию, которое возвращается, если Value не является корректным float значением.
Мини-форум вопроса
Всего сообщений: 4; последнее сообщение — 23 февраля 2007, 19:32; участников в обсуждении: 3.
|
Шарайчук Сергей Олександрович (статус: 2-ой класс), 23 февраля 2007, 18:38 [#1]:
Попробуй так val(s,a,cod),s-строка, а-real, cod-integer, змінна цілого типу використовується для запису коду помилки якщо така існує, функція val перетворює сторку s в число типу real і присвоює його змінній a!
Я бы изменил мир, но Бог не дает исходники!
|
|
Aymenel (статус: 2-ой класс), 23 февраля 2007, 18:49 [#2]:
Добавлю к сказанному господином Шарайчук.
В переменную Cod будет занесен ноль в случае успешного завершения преобразования или номер позиции, в которой произошла ошибка. Для строк с ограничивающим нулем номер похиции возвращается на единицу больше, чем для строки, представленной как массив символов (String).
Эта процедура может быть использована и для преобразования строки в целое число.
|
|
Шарайчук Сергей Олександрович (статус: 2-ой класс), 23 февраля 2007, 18:57 [#3]:
Федоров Роман Сергеевич, спасибо за дополнение, если можеш, дай ответ на мой Вопрос #342
Я бы изменил мир, но Бог не дает исходники!
|
31 января 2011, 19:22: Статус вопроса изменён на решённый (изменил модератор Ерёмин А.А.): Автоматическая обработка (2 и более ответов с оценкой 5)
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|