Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:14743 Return-Path: Mailing-List: contact internals-help@lists.php.net; run by ezmlm Delivered-To: mailing list internals@lists.php.net Received: (qmail 71304 invoked by uid 1010); 9 Feb 2005 09:16:41 -0000 Delivered-To: ezmlm-scan-internals@lists.php.net Delivered-To: ezmlm-internals@lists.php.net Received: (qmail 71257 invoked by uid 1007); 9 Feb 2005 09:16:40 -0000 Message-ID: <20050209091640.71237.qmail@lists.php.net> To: internals@lists.php.net References: <20050208191532.36752.qmail@lists.php.net> <719431098.20050209002446@marcus-boerger.de> Date: Wed, 9 Feb 2005 10:16:37 +0100 Lines: 78 X-Priority: 3 X-MSMail-Priority: Normal X-Newsreader: Microsoft Outlook Express 6.00.2800.1437 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2800.1441 X-Posted-By: 212.238.144.71 Subject: Re: [PHP-DEV] 'double' / 'float' revised.. think about it. From: r.korving@xit.nl ("Ron Korving") That's my whole point Marcus, but the nature of the native floating point types is something you can get around by implementing your own floating point type, based on a base-10 system, in the same way that for example bcmath does it. So my suggestion is; stop using float and double, and make your own type. Small performance hit, and it will probably cost you about 1 byte extra per floating point variable, but then it will be accurate. Ron "Marcus Boerger" wrote in message news:719431098.20050209002446@marcus-boerger.de... > Hello Ron, > > it doesn't matter how accurate your floating or whatever you call it is. > Financial applications require native support which can be realized using > bcmath. Whatever you think besides that - the problem is that any errors > accumulate - that's the nature of float. > > If you would like to know whats IEEE 754 read this > http://docs.sun.com/source/806-3568/ncg_goldberg.html > > best regards > marcus > > Tuesday, February 8, 2005, 8:15:31 PM, you wrote: > > > Personal recent frustrating float issues made me think of the following... > > > At the moment apparently the C-type double is used for PHP's float (or > > double if you please) storage. I believe it is the philosophy of PHP to make > > things easy for its users, and in this perspective I was thinking.. hasn't > > the time come to reimplement the PHP float type in a decimal-safe way? Of > > course it would be a small performance hit, but not too noticable I think, > > especially when utilizing simd instructions which a compiler may or may not > > already do. I think, especially with todays powerful systems, performance > > (although still a big concern) is no longer the only primary concern. > > Shouldn't PHP abandon the speed of the double in C on this one, and > > implement a custom implementation of the floating point type which is much > > more accurate, even at the cost of a few extra bytes and cycles? > > Userfriendlyness over performance. I think it would be one hell of a feature > > for PHP to be mathematically correct, a world in which 1.5555 is really > > 1.5555 and not something that approaches it, and where (for example) > > rounding it would result in expected behaviour. I think PHP would > > automagically be more suitable for various (financial for example) > > applications which could potentially result in more popularity for PHP as a > > whole. > > > I know there are alternatives for accurate mathematics, but they (naturally) > > depend on strings which make them a lot slower than a native solution would > > be, and besides that, they are less nice to use compared to +,-,/,*,% > > operators. > > > It's just an idea of course, and I'm curious if there are others who feel > > the same way about this. > > > Ron > > > > > -- > Best regards, > Marcus mailto:helly@php.net