Date: Mon, 15 Jan 2018 17:38:54 +0300 From: Yuri Pankov <yuripv@icloud.com> To: freebsd-current <freebsd-current@freebsd.org> Subject: inconsistent for() and while() behavior when using floating point Message-ID: <6c423dbf-cd85-3c93-41e4-3362c06dfbb7@icloud.com>
next in thread | raw e-mail | index | archive | help
Hi, Looking at https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=217149, I noticed that it isn't a seq(1) problem per se, rather for() and while() loops behaving inconsistently while using floating point, i.e.: double i; for (i = 1; i <= 2.00; i += 0.1) printf("%g\n", i); would produce: 1 ... 1.9 but: double i; for (i = 1; i <= 2; i += 0.2) printf("%g\n", i); would correctly end with 2: 1 ... 2 $ cc -v FreeBSD clang version 6.0.0 (branches/release_60 321788) (based on LLVM 6.0.0) Target: x86_64-unknown-freebsd12.0 Thread model: posix InstalledDir: /usr/bin though gcc 4.4.4 on illumos behaves the same. Is this a known problem with loops and floating point numbers?
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6c423dbf-cd85-3c93-41e4-3362c06dfbb7>