Я пытаюсь проверить, если значение я читать из текстового файла равен нулю:Проблема с плавающей точкой сравнения
[[ $(echo $line | cut -d" " -f5) -gt 0 ]] && [[ $(echo $line | cut -d" " -f7 | bc -l) -eq 0 ]]
С первым условием не является проблемой, поскольку f5 являются целыми числами. Проблема возникает из второго условия. Я получаю сообщение об ошибке:
[[: 1.235: syntax error: invalid arithmetic operator (error token is ".235")
Я попытался несколько предложений, которые я нашел в различных форумах, таких как использование echo $line | cut -d" " -f7 | bc -l
и без двойных кавычек, и т.д. Тем не менее, ошибка сохраняется. f7 - положительное число и задается с 3 знаками после запятой. Удаление десятичных знаков или аппроксимация не является вариантом, потому что мне нужен результат, равный нулю (0.000).
Done, спасибо! – mirix
Не работает. Ошибки исчезли. Однако с ошибками программа работала нормально и создавала правильный выход. Теперь это не так. – mirix
Опубликовать сценарий? Или часть, которая идет не так? Возможно, это не связано с этим, поэтому вы можете отправить новый вопрос. –