+format() {
+ if [ $1 -lt 100 ]; then # round down <.1 kb
+ printf '000K'
+ elif [ $1 -lt $((10**3)) ]; then
+ printf '0%sk' $(echo "scale=1;$1 / 10^3" | bc -l)
+ elif [ $1 -lt 9950 ]; then
+ printf '%sk' $(round `echo "$1 / 10^3" | bc -l` 1)
+ elif [ $1 -lt 99500 ]; then
+ printf '0%sk' $(round `echo $1 / 10^3 | bc -l` 0)
+ elif [ $1 -lt 999500 ]; then
+ printf '%sk' $(round `echo $1 / 10^3 | bc -l` 0)
+ elif [ $1 -lt 1050000 ]; then
+ printf '%sm' $(echo `round $(echo "$1 / 10^7" | bc -l) 1`*10 | bc -l)
+ elif [ $1 -lt 9950000 ]; then
+ printf '%sm' $(round `echo "$1 / 10^6" | bc -l` 1)
+ elif [ $1 -lt 99500000 ]; then
+ printf '0%sm' $(round `echo "$1 / 10^6" | bc -l` 0)
+ elif [ $1 -lt 999500000 ]; then
+ printf '%sm' $(round `echo $1 / 10^6 | bc -l` 0)
+ elif [ $1 -lt 9950000000 ]; then
+ printf '%sg' $(round `echo $1 / 10^9 | bc -l` 1)
+ elif [ $1 -lt 99500000000 ]; then
+ printf '0%sg' $(round `echo $1 / 10^9 | bc -l` 0)
+ elif [ $1 -lt 999500000000 ]; then
+ printf '%sg' $(round `echo $1 / 10^9 | bc -l` 0)
+ else
+ printf 'fast'
+ fi
+}
+
+round() {
+ echo $(printf %.$2f $(echo "scale=$2;(((10^$2)*$1)+0.5)/(10^$2)" | bc))
+}
+
+for x in {1000..10000}; do format $(( $x * 10 )); done
+