diff options
author | filip <“filip.rabiega@gmail.com”> | 2025-07-10 12:24:33 +0200 |
---|---|---|
committer | filip <“filip.rabiega@gmail.com”> | 2025-07-10 12:24:33 +0200 |
commit | e4ea00cfc9fc7340c62dd920b4754787c4499de6 (patch) | |
tree | 2e4c036888529e99cd67a0ee59d9ac8bb5e09000 /decperc | |
parent | 1feb678fc3d52a7a3c4e31bb153783852fa08a58 (diff) | |
download | chadscripts-e4ea00cfc9fc7340c62dd920b4754787c4499de6.tar.gz chadscripts-e4ea00cfc9fc7340c62dd920b4754787c4499de6.tar.bz2 chadscripts-e4ea00cfc9fc7340c62dd920b4754787c4499de6.zip |
Diffstat (limited to 'decperc')
-rwxr-xr-x | decperc | 30 |
1 files changed, 30 insertions, 0 deletions
@@ -0,0 +1,30 @@ +#!/usr/bin/zsh + +dec_into_perc () { + dec="$1" + # duplicating code, don't care + if echo "$dec" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+)$'; then + percent="$( echo "$dec * 100" | bc -l )" + echo "${percent}%" + else + echo "Error: not a decimal number" >&2 + exit 1 + fi +} + +perc_into_dec () { + perc="$1" + # duplicating code, don't care + if echo "$perc" | grep -qE '^(-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$'; then + dec="{$perc%?}" + dec="$( echo "$dec / 100" | bc -l )" + echo "$dec" + else + echo "Error: not a percent" >&2 + exit 1 + fi +} + +echo "$1" | grep -qE '^(-?[0-9]+\.[0-9]+|-?[0-9]|\.[0-9]+|-?[0-9]+\.[0-9]+%|-?[0-9]+%|\.[0-9]+%)$' && + len=${#1} && + [[ "${1:len-1:1}" == "%" ]] && perc_into_dec "$1" || dec_into_perc "$1" |