aboutsummaryrefslogtreecommitdiffhomepage
path: root/share/functions/math.fish
diff options
context:
space:
mode:
authorGravatar David Adam <zanchey@ucc.gu.uwa.edu.au>2014-09-27 18:36:33 +0800
committerGravatar David Adam <zanchey@ucc.gu.uwa.edu.au>2014-09-27 18:38:44 +0800
commit7cad0069e8f4a652d0e22f1b0198f67399e80157 (patch)
tree6a2732e81bb0dbbd2f32f73fe5da0013cf768598 /share/functions/math.fish
parenta0e5cdd17866ffedcf5171285ac2abc9079218ac (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.fish9
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