У меня есть скрипт bash, который вычитает 0.0001 из больших чисел с помощью awk. Он не работает, если числа имеют более четырех знаков после запятой.Вычитание плавающих точек с помощью awk
Он использует эти аргументы AWK ...
balance=$(awk -vn1="$balance" -vn2="0.0001" 'BEGIN{print (n1-n2) }')
Если $balance
равно 1.44189949
число заканчивается 1.4418
, и она должна быть 1.44179949
так что я сделал что-то не так.
Я никогда не занимался числами с плавающей запятой в bash раньше.
кажется как AWK округляет результат. –
Это не работает. 'fatal: недостаточно аргументов для удовлетворения строки формата. Я попытался:' balance = $ (awk -vn1 = "$ balance" -vn2 = "0.0001" 'BEGIN {printf ("12.8% f" (n1-n2))} ') ' –
Произошла пропавшая запятая, но теперь я получаю очень странный вывод:' 12.81.441799' –