Следует использовать лучшее значение для pi
и разрешить масштабирование, как определено по умолчанию в bc
(20 цифр):
$ echo "r=3; pi=4*a(1); (4/3)*pi*(r^3)" | bc -l
113.09733552923255658339
Это лучший способ выполнения вычисления. Масштаб — это параметр для определения точности, используемой в вычислении, а не параметр для форматирования числовых выходных данных результата.
Для форматирования числа можно использовать printf:
$ result="$(echo "r=3; pi=4*a(1); (4/3)*pi*(r^3)" | bc -l)"
$ printf '%.2f' "$result"
113.10
Если у вас возникли проблемы с числовым десятичным символом (,
или .
), вы можете использовать эту версию:
$ LC_NUMERIC=C printf '%.2f' "$result"
113.10
printf округляет число после реализации IEEE 754
Конечно, вы можете заставить bc вырезать десятичные дроби с окончательным изменением масштаба:
$ echo "r=3; pi=4*a(1); res=(4/3)*pi*(r^3); scale=2; res/1" | bc -l
113.09
Но это плохая идея в целом.
apt-get install <package_name>/testing
apt-get install -t test <package_name>
Первый метод не будет пытаться обновить какие-либо пакеты в вашей системе, поэтому, если определенные зависимости не соблюдены, установка будет неудачной.
Второй метод попытается установить/обновить все зависимости. Конечно, учитывая приведенный выше пример, 'apt-get' спросит вас, прежде чем продолжить.
Ответ от Debian wiki :AptPreferences
Что ж, этот вопрос меня щекочет со вчерашнего дня, когда я впервые прочитал ваш пост.
Как правило, эти две версии apt-get install совпадают, согласно справочным страницам apt-get.
На практике эти две версии действительно идентичны, когда вы пытаетесь установить один или несколько пакетов с известным именем.
Но если вы попытаетесь установить несколько пакетов с использованием подстановочных знаков, я смогу заметить некоторые различия.
Эта команда не работает:
apt-get install -s mate*/testing
Хотя эта команда работает нормально:
apt-get install -s -t testing mate*
Похоже, что mate * / testing выполняет поиск из всех пакетов, содержащих mate, и пытается установить все пакеты thos из тестового репозитория. Если некоторые пакеты недоступны в тестовом репозитории, вы получите сообщение об ошибке и apt-get завершится ошибкой.
С другой стороны, параметр -t test mate * выбирает пакеты mate *, доступные только в репозитории для тестирования. Он не пытается искать и устанавливать пакеты mate *, которые недоступны в тестовом репозитории, и поэтому не дает сбоев.
Вы можете попробовать, если хотите использовать вышеуказанные команды, используя опцию -s (simulate), которая позволяет вам видеть все сообщения apt-get в вашем терминале, как если бы они появлялись при реальной установке (но на самом деле ничего не установлены).
PS: Существует также очевидная и незначительная разница между двумя версиями: Работая с версией "/ release", вы можете комбинировать (если хотите) различные пакеты из разных / релизов, а с " -t release "версия, вы устанавливаете глобально выпуск, который будет применяться ко всем пакетам, которые будут следовать за apt-get install.