Страница 1 из 1

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

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

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

var y1,y2: real;
x,code: integer;
C : string;
d: Char;
begin
  ClrScr;
  Write('Enter number: ');
  ReadLn(C);
  val(C, x,code);

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

Добавлено: 10 сен 2010, 17:56
BBB
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 указывает на позицию в строке, содержащую недопустимый символ.