diff options
author | David Adam <zanchey@ucc.gu.uwa.edu.au> | 2014-09-27 18:36:33 +0800 |
---|---|---|
committer | David Adam <zanchey@ucc.gu.uwa.edu.au> | 2014-09-27 18:38:44 +0800 |
commit | 7cad0069e8f4a652d0e22f1b0198f67399e80157 (patch) | |
tree | 6a2732e81bb0dbbd2f32f73fe5da0013cf768598 /share/functions/math.fish | |
parent | a0e5cdd17866ffedcf5171285ac2abc9079218ac (diff) |
math.fish: support floating-point maths
Closes #1643.
Thanks to Mickaƫl RAYBAUD-ROIG (https://github.com/m-r-r) for the idea
of printf.
Diffstat (limited to 'share/functions/math.fish')
-rw-r--r-- | share/functions/math.fish | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/share/functions/math.fish b/share/functions/math.fish index ced85aad..a782f7d7 100644 --- a/share/functions/math.fish +++ b/share/functions/math.fish @@ -7,8 +7,13 @@ function math --description "Perform math calculations in bc" return 0 end - set -l out (echo $argv|env BC_LINE_LENGTH=0 bc) - test -z "$out"; and return 1 + # Override the locale so that the output can be used as input + set -l LC_NUMERIC C + # GNU bc extension + set -l BC_LINE_LENGTH 0 + + set -l out (printf '%g' (echo $argv| bc -l)) + test -z "$out"; and return 1 echo $out switch $out case 0 |