Брудний хак для малих значень і обмеженої точності без використання bc - це, помноживши номінатор перед діленням, отримати точний результат.
Приклад без точності:
echo $((13/7))
1
і з двозначною точністю: помножте на 100 і рухайте десяткову точку на 2 кроки вліво:
echo $((100*13/7)) | sed 's/..$/.&/'
1.85
echo $((100*13/7))%
185%
Це корисно лише в тому випадку, якщо діапазон чисел відомий раніше, а точність завжди однакова. Уникати дзвінків на bc , а дзвонити sed видається не дуже розумним.
Зауважте, що множення значень може призвести до помилок переповнення, але не дуже рано:
echo $((1000000000*12345678901))
-6101065172709551616