From 7cad0069e8f4a652d0e22f1b0198f67399e80157 Mon Sep 17 00:00:00 2001 From: David Adam Date: Sat, 27 Sep 2014 18:36:33 +0800 Subject: [PATCH] math.fish: support floating-point maths MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes #1643. Thanks to Mickaƫl RAYBAUD-ROIG (https://github.com/m-r-r) for the idea of printf. --- share/functions/math.fish | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/share/functions/math.fish b/share/functions/math.fish index ced85aad4..a782f7d75 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