From 007f249a8e190306a9ef6bca2317e79004ace871 Mon Sep 17 00:00:00 2001 From: Matthew Martin Date: Tue, 29 Sep 2015 00:06:39 -0500 Subject: 36693: arithmetic rounds towards zero, document --- ChangeLog | 3 +++ Doc/Zsh/arith.yo | 10 +++++----- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 56e725cf0..ea7bd2e98 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,8 @@ 2015-09-30 Peter Stephenson + * Matthew Martin: 36693: Doc/Zsh/arith.yo: arithmetic rounds + towards zero. + * 36711: Src/glob.c, Src/pattern.c: Memory for early unmetafied pattern trial string is on the heap. diff --git a/Doc/Zsh/arith.yo b/Doc/Zsh/arith.yo index 1dcd18cad..c152bf48d 100644 --- a/Doc/Zsh/arith.yo +++ b/Doc/Zsh/arith.yo @@ -215,7 +215,7 @@ findex(integer, use of) Arithmetic evaluation is performed on the value of each assignment to a named parameter declared integer in this manner. Assigning a floating point number to an integer results in -rounding down to the next integer. +rounding towards zero. cindex(parameters, floating point) cindex(floating point parameters) @@ -230,16 +230,16 @@ format. Promotion of integer to floating point values is performed where necessary. In addition, if any operator which requires an integer -(`tt(~)', `tt(&)', `tt(|)', `tt(^)', `tt(%)', `tt(<<)', `tt(>>)' and their -equivalents with assignment) is given a floating point argument, it will be -silently rounded down to the next integer. +(`tt(&)', `tt(|)', `tt(^)', `tt(<<)', `tt(>>)' and their equivalents with +assignment) is given a floating point argument, it will be silently rounded +towards zero except for `tt(~)' which rounds down. 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 +in this being rounded towards 0. The tt(FORCE_FLOAT) shell option can be used in scripts or functions where floating point evaluation is required throughout. -- cgit 1.4.1