… Резултата го подавам на if и става неочакваното…
както писах по-горе bash не се погажда с десетични дробни числа и няма да можеш много лесно да го използваш за сравнение в
if. препоръчвам ти да заобиколиш това като умножиш и двете сравнявани стойности с достатъчно голямо число, така, че да промениш разрядността и да не те интересува дробната част. например, искаш да сравниш 5,6 с 4,92. умножаваш ги двете със 100 и получаваш съответно 560 и 492. тук вече bash ще откликне по-отзивчиво :-)
ако не знаеш предварително колко ти е най-голямата точност след запетаята можеш да пробваш нещо от сорта на:
echo -n "30,45446"| cut -s -d "," -f2-|wc -mкато съответно си промениш точката или запетаята според твоя локал. горното дава желания резултат +1 (което не ми се занимава да разбера защо
cut добавя един нов ред и той влиза в сметката после), но за целта на занятието става.
остава ти да направиш едно:
echo $(( 10**6 ))където 6 е резултатът от горната сметка и ще получиш числото, с което трябва да умножиш двете дробни стойности за да се отървеш от десетичната част.
успех!