Перевод из строковых в числовые десятичной дробеи

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
Stallman
Сообщения: 1
Зарегистрирован: 10 сен 2010, 11:30

Я считывает символы и пытаюсь их перевести из строкового типа в чиловой для дальнейших рачотов ,но при вводе десятичной дроби например 0.5 происходит ошибка как это исправить?

Код: Выделить всё

var y1,y2: real;
x,code: integer;
C : string;
d: Char;
begin
  ClrScr;
  Write('Enter number: ');
  ReadLn(C);
  val(C, x,code);
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

Stallman писал(а):Я считывает символы и пытаюсь их перевести из строкового типа в чиловой для дальнейших рачотов ,но при вводе десятичной дроби например 0.5 происходит ошибка как это исправить?
А как Вы хотите записать дробное число в переменную типа integer?

Если допустимо вводить дробные числа, то:

Код: Выделить всё

var y1,y2: real;
(* x,code: integer; *)
code: integer;
 x : real;
 C : string;
d: Char;
begin
  ClrScr;
  Write('Enter number: ');
  ReadLn(C);
  val(C, x,code);
Если не допустмо, то надо анализировать значение Code после вызова Val. Если Code <> 0, то строка не преобразуема к числы, значение Code указывает на позицию в строке, содержащую недопустимый символ.
Ответить