On 24/02/16 01:11, Andrea Faulds wrote: > Furthermore, if PHP developers find floating-point confusing and are > genuinely surprised that 0.1 cannot be represented in binary exactly, > then perhaps they should go and learn about what floating-point numbers > do, rather than naïvely continuing on thinking they're decimals thanks > to PHP lying to them! It is not the job of the language to try and hide > that floats are imprecise from programmers.
This just about sums up my understanding on the differences between a programmer and a software engineer. There are fundamental limits to each of the different hardware platforms one is running code on, so 'assuming' that the answers you get are always the same simply proves one still has to learn how to program. SQL addressed many of these differences early on, and things like fractional currency fields being managed as integers with a fixed fractional offsets ( NUMBER(8,3) ) which accurately record 'tenth of a cent' provide clean interfaces, but all too often they get transferred into 'float' because it's 'easier to handle'. That PHP makes some of these conversions transparently *IS* the problem of the language, but often it's because the programmer is simply ignorant of why the original methods were adopted? BIGINT is an example of where there are different understandings of just what a number is, and trying to add unlimited accuracy is not a substitution to the fact that when accessed from a database a BIGINT is simply a clean 64bit number. Float has the same limitations based on just what hardware is providing it? -- Lester Caine - G8HFL ----------------------------- Contact - http://lsces.co.uk/wiki/?page=contact L.S.Caine Electronic Services - http://lsces.co.uk EnquirySolve - http://enquirysolve.com/ Model Engineers Digital Workshop - http://medw.co.uk Rainbow Digital Media - http://rainbowdigitalmedia.co.uk -- PHP Internals - PHP Runtime Development Mailing List To unsubscribe, visit: http://www.php.net/unsub.php