В настоящее время мне приходится взаимодействовать с устаревшей программой Fortran, создавая файл вывода ascii, который программа должна читать, выполнять некоторые вычисления, а затем я должен разбирать двоичный вывод. По большей части, у меня это работает, но я сталкиваюсь с небольшой проблемой.Дескрипторы ввода/вывода Fortran в Java?
Проблема, с которой я столкнулся, связана с дескрипторами Fortran. Есть ли простой способ получить дескриптор типа E9.3 в объект DecimalFormat в Java?
DecimalFormat У меня есть работы только для чисел меньше 1. Для чисел < 1, таких как 0.123, они выписываются со знаком экспоненты, как 1.230E-01. Однако для чисел, больших 1 (12.345), они записываются как 1.234E01, а не 1.234E + 01. Из того, что мне говорят, программа ожидает, что знак «+» станет частью экспоненты.
Строка DecimalFormat, которую я использую сейчас, «# 0.000E00», и в настоящее время я пытаюсь манипулировать строкой, чтобы вставить туда «+» (после E, но до цифр), если это необходимо. Должен быть лучший способ сделать это. Любая помощь будет оценена.
'String.format ("% e ", 123.456);' возвращает '1.234560e + 02' для меня. – millimoose
Проблема в том, что общая строка должна быть 9 и всего 9 символов. По сути, номер вашего примера должен быть 1.235E + 02, и я не уверен, как заставить его на определенную длину. –
Глядя на спецификацию DecimalFormat (я никогда не использовал ее лично), она выглядит довольно негибкой. Нет очевидного трюка для достижения того, чего вы хотите, кроме пост-обработки. –