У меня есть номера фиксированной запятой в файле, по одному в каждой строке, в этом формате S9(6)V9(2)
, но когда они действительно читаются, я получаю non numeric
ошибок при попытке поместить их в математику операции. Более того, когда я пытаюсь отобразить их в программе, число, которое записано в файле как 567123.45 сохраняется в переменной как +567123.04. И, например, номер из файла 123.45 сохраняется в переменной как +123.45.00, и это вызывает ошибку 'WS-VALUE' not numeric: '123.45 0'
во время математической операции. Почему это? Я использую OpenCobolIDE 4.7.4 для Windows.Чтение чисел с плавающей запятой из файла в COBOL
EDIT: Файл содержит записи следующего вида отделенного новыми линиями (читать READ
операции записи после записи):
01 WS-OPERATION.
05 WS-ID PIC A(2).
05 WS-CLIENT PIC 9(5).
05 WS-COUNTRY PIC A(4).
05 WS-VALUE PIC S9(6)V9(2).
Во-первых: это не объекты с плавающей запятой, так как только «ИСПОЛЬЗОВАНИЕ FLOAT ...» являются элементами с плавающей запятой. На самом деле это элементы фиксированной точки. Вопросы: Какой компилятор вы используете? Я предполагаю, что стандартный отправленный GnuCOBOL 1.1 - Если вы изменили пути компилятора, вы найдете эту информацию в меню? -> Об OpenCobolIDE. Как вы читаете файл, как выглядит файл и его описание записи? Как выглядит выражение 'DISPLAY'? –
Да, я использую версию 1.1.0. Я отредактировал сообщение о структуре файла. – Quentin
Я настоятельно рекомендую отредактировать часть «с плавающей запятой» до «фиксированной точки». –