On 2021-03-24 2:59 p.m., Bart Schaefer wrote:
Long time since I did any floating point in C, so I'll take you guy's word for it. Final shot would that since one can force the conversion by, say, multiplying by 1.0, which is otherwise pointless, one could imagine some option whereby the bother is simply not required.On Wed, Mar 24, 2021 at 2:54 PM Roman Perepelitsa <roman.perepelitsa@xxxxxxxxx> wrote:The behavior of zsh in this regard is consistent with C and all languages inspired by it (C++, Java, C# and many, many others). This is really working as intended.Proof: #include <stdio.h> void main() { int x = 3, y = 7; float z = (x/y); printf("%g\n", z); }
(( aa = ((2 * nn) - 1) / (nn**2.0) ))... in that case the denominator is not changed in any way, yet if flags that the division should be passed as a float. Seems an awkward way of getting the conversion. How is 2^2 different from 2^2.0 ? If 'aa' was an integer then of course the result must be rounded, but it still seems to me the float should receive the actual result. One of my little whines, nothing of substance. Still one might dream of setopt AUTO_FLOAT.