Date: Thu, 13 Apr 2006 10:24:03 -0400 From: Bill Moran <wmoran@collaborativefusion.com> To: Krzysztof Nakielski <nakiel@nakiel.net> Cc: freebsd-questions@freebsd.org Subject: Re: round() problem Message-ID: <20060413102403.1c653d51.wmoran@collaborativefusion.com> In-Reply-To: <20060413092226.GA10039@nakiel.dyndns.org> References: <20060412100917.GA1406@nakiel.dyndns.org> <20060412093701.0309d4a6.wmoran@collaborativefusion.com> <20060413092226.GA10039@nakiel.dyndns.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Krzysztof Nakielski <nakiel@nakiel.net> wrote: > On Wed, Apr 12, 2006 at 09:37:01AM -0400, Bill Moran wrote: > > On Wed, 12 Apr 2006 12:09:17 +0200 > > Krzysztof Nakielski <nakiel@nakiel.net> wrote: > > > > > Hi, > > > > > > I am having problem with round() function in php, python, mysql. I am > > > not sure if thats FreeBSD issue. I receive the same results on 4.11, 5.4 > > > and 6.0. > > > > > > php (4.4.1, 5.1.2): > > > %php -r 'print round(8.075, 2) ."\n";' > > > 8.07 > > > > Have you compared these results to other POSIX systems? > > On RHEL 3 only PHP returns good result. In python and mysql there is the > same issue. > > > The problem is in the way that real numbers are implemented. If you > > do some searches, you'll find many, many discussions of this. Simple > > fact is that the behaviour under these circumstances is not what > > you think it is. This kind of thing is the reason that most languages > > have high-precision floating point libraries available. > > > > I will search for this. But first thing is to give up with python, php, > mysql in billing software or write own functions otherwise you can lose > money. That's not a good solution. Real numbers are not designed to be accurate in the way that you define accurate. If you want your application to behave in a manner that you understand, then you need to understand how those numbers are handled by the language. A few things to research: http://fixedpoint.sourceforge.net/ http://dev.mysql.com/doc/refman/5.0/en/precision-math.html http://us2.php.net/manual/en/ref.bc.php http://en.wikipedia.org/wiki/Fixed-point_arithmetic -- Bill Moran
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060413102403.1c653d51.wmoran>