bc и scale (округлить результат умножения и сложения)
Модератор: Модераторы разделов
-
AlexYeCu
- Сообщения: 1137
- ОС: fedora
bc и scale
Такой вот вопрос. scale устанавливает точность только для деления, а в примерах вида $traffic*1.6+1200 игнорируется. Как быть? Хотелось бы в баше воспользоваться чем-то вроде Math.round/Math.ceil ну и просто ограничить точность не только для результатов деления.
-
MiK13
- Сообщения: 1290
- ОС: Linux Debian
Re: bc и scale
Пока ничего другого, как добавить к результату 0.5*10^(-scale) и потом разделить на 1 в голову не приходит.
Правда, я с bc практически не работал и поэтому знаю его очень плохо
Так в баше или в bc ?
-
AlexYeCu
- Сообщения: 1137
- ОС: fedora
-
AlexYeCu
- Сообщения: 1137
- ОС: fedora
Re: bc и scale
Код: Выделить всё
#!/bin/bash
`wget -q --secure-protocol=auto --no-check-certificate --output-document=radugastat.html https://balance.ru:8011 --post-data="user_name=user_vpn&user_pass=parol"`
mystats=`cat /home/AlexYeCu/radugastat.html| grep '<TD BGCOLOR=#ff00ff> ' | cut -c33-40 | sed s/,/./`
rm /home/AlexYeCu/radugastat.html
overload=$(echo "scale=3;$mystats - 1024" | bc )
abonpay=150
overpay=1.6
prepay=1060
if $(echo "scale=3;$overload <= 0" | bc)
then
overload=0
money= $abonpay + $prepay
else
money=$(echo "scale=2;($overload * $overpay + $prepay + $abonpay)/1" | bc )
fi
echo "траффик="$mystats "Мб"
echo "перерасход="$overload "Мб"
echo "расходы="$money" рублей"
exit 0Просьба помочь со скриптом.
Номер раз, его исполнение выдаёт:
Код: Выделить всё
./raduga: line 9: 0: команда не найдена
траффик=1098.127 Мб
перерасход=74.127 Мб
расходы=1328.60 рублейНомер два:
как бы правильно распарсить строчку:
Код: Выделить всё
cut -c33-40Код: Выделить всё
<TD BGCOLOR=#ff00ff> 333,33 ... >UP: на номер два ответ нашёл.
Код: Выделить всё
sed 'y/, /. /'