Другой вопрос был назван дубликатом этого:
В C ++ почему результат cout << x
отличается от значения, которое показывает отладчик для x
?
x
в вопросе - это переменная float
.
Одним из примеров может быть
float x = 9.9F;
Отладчик показывает 9.89999962
, вывод работы cout
- 9.9
.
Ответ оказывается, что точность cout
по умолчанию для float
равна 6, поэтому она округляется до шести десятичных цифры
См. здесь для справки
См. Расширение параметра в man bash
:
${parameter#word} ${parameter##word}
Удалить соответствующий шаблон префикса. Слово расширяется для создания шаблона так же, как при расширении пути. Если шаблон совпадает с началом значения параметра, то результатом расширения является расширенное значение параметра с кратким шаблоном соответствия (случай
#
) или самый длинный шаблон соответствия (случай##
). Если параметр равен @ или *, операция удаления паттерна применяется поочередно по каждому позиционному параметру, а расширение - это результирующий список. Если параметр представляет собой переменную массива с индексом @ или *, операция удаления шаблона применяется поочередно к каждому члену массива, а расширение - результирующий список.${parameter%word} ${parameter%%word}
Удалить соответствующий шаблон суффикса. Слово расширяется для создания шаблона так же, как при расширении пути. Если шаблон соответствует конечной части расширенного значения параметра, то результатом расширения является расширенное значение параметра с кратчайшим шаблоном соответствия (случай
blockquote>%
) или самый длинный шаблон соответствия (случай%%
), удален. Если параметр равен @ или *, операция удаления паттерна применяется поочередно по каждому позиционному параметру, а расширение - это результирующий список. Если параметр представляет собой переменную массива, подстроенную с помощью @ или *, операция удаления шаблона применяется поочередно к каждому члену массива, а расширение является результирующим списком.Короче ,
#
удаляет рисунок слева,%
справа, удвоение символа делает совпадающим жадным. (Мнемоника:#
находится слева от%
на большинстве клавиатур).
Ищите раздел «Удаление подстроки» в в этом руководстве :
${string##substring}
Удаляет самое длинное совпадение
$substring
спереди$string
.${string%substring}
Удаляет кратчайшее совпадение
blockquote>$substring
со стороны$string
.