From 53e3d9e0638d025cd99a65011ff96d5e2680e2ec Mon Sep 17 00:00:00 2001 From: Peter Stephenson Date: Fri, 9 Jan 2015 22:46:42 +0000 Subject: 34914: explanation of effect of integer promotion --- Doc/Zsh/arith.yo | 9 +++++++++ 1 file changed, 9 insertions(+) (limited to 'Doc') diff --git a/Doc/Zsh/arith.yo b/Doc/Zsh/arith.yo index a620b73d1..5c334ce9c 100644 --- a/Doc/Zsh/arith.yo +++ b/Doc/Zsh/arith.yo @@ -233,6 +233,15 @@ necessary. In addition, if any operator which requires an integer equivalents with assignment) is given a floating point argument, it will be silently rounded down to the next integer. +Users should beware that, in common with many other programming +languages but not software designed for calculation, the evaluation of +an expression in zsh is taken a term at a time and promotion of integers +to floating point does not occur in terms only containing integers. A +typical result of this is that a division such as tt(6/8) is truncated, +in this being rounded down to 0. The tt(FORCE_FLOAT) shell option can +be used in scripts or functions where floating point evaluation is +required throughout. + Scalar variables can hold integer or floating point values at different times; there is no memory of the numeric type in this case. -- cgit 1.4.1