summaryrefslogtreecommitdiff
path: root/calc
blob: d3079628422539229359e3a52be56fc56cb83af1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/env bash
# Simple calculator
result=""
result="$(printf "scale=10;$*\n" | bc --mathlib | tr -d '\\\n')"
#                       └─ default (when `--mathlib` is used) is 20
#
if [[ "$result" == *.* ]]; then
  # improve the output for decimal numbers
  printf "$result" |
  sed -e 's/^\./0./'        `# add "0" for cases like ".5"` \
      -e 's/^-\./-0./'      `# add "0" for cases like "-.5"`\
      -e 's/0*$//;s/\.$//'   # remove trailing zeros
else
  printf "$result"
fi
printf "\n"