Hi Earl,
That is number 1 on my wish list for Excel. Either in software or supported by hardware, maybe as option you can choose (for the
whole of Excel? For individual cells? Some design issues here).
I guess most Excel users are in the financial field, where floating point calculation causes more problems than it solves.
--
Kind regards,
Niek Otten
Microsoft MVP - Excel
| I've often wondered, aren't computers fast enough these days that they could do decimal
| math, instead of having to do binary conversions? Even if the decimal math had do be done
| in software? Better yet, of course, would be for the CPU do be able to do it natively, as
| IBM systems were doing decades ago. It seems to me we mess around with having to handle the
| errors for a far greater time than additional time the computer might need, even for a large
| job. Just a thought.
| --
| Earl Kiosterud
|
www.smokeylake.com
|
| -----------------------------------------------------------------------
| | > This is a natural consequence of finite precision arithmetic. Excel is
| > behaving exactly according to the IEEE standard, as most computers and
| > software in the world do.
| >
| > If you had a calculator that only carried 4 decimal figures of accuracy,
| > then you would only expect
| > (1+x)-1-x
| > to be zero if x could be represented in 3 decimal figures. For instance, if
| > x=1/3, then you would have
| > 1.333-1-0.3333
| > which should not produce zero.
| >
| > The only potential surprise here is that 0.01 cannot be exactly represented.
| > But computers work in binary where most terminating decimal fractions are
| > non-terminating binary fractions. IEEE double precision uses 53 bits to
| > approximate numbers, so the decimal equivalents of the binary approximations
| > to 1.01 and 0.01 are
| > 1.0100000000000000088817841970012523233890533447265625
| > 0.01000000000000000020816681711721685132943093776702880859375
| > so that your calculation correctly results in
| > 8.67361737988403547205962240695953369140625E-18
| > which Excel reports to its documented display limit of 15 digits as
| > 8.67361737988404E-18
| >
| > You get 0 from =1.01-1-0.01 (removing the parentheses) because Excel is
| > trying to be "helpful" and assumes that a final difference between 2 numbers
| > that are equal to 15 digits is not meaningful. With the parentheses, the
| > parentheses rather than the subtraction is the final operation, so the fuzz
| > factor does not kick in to avoid introducing possibly unwanted inaccuracies
| > into the math.
| >
| > Jerry
| >
| > "(e-mail address removed)" wrote:
| >
| >> Enter:
| >>
| >> =(1.01-1-0.01)
| >>
| >> To quote Paul Lynde, "I don't know what you got, but I got a sports
| >> shirt."
| >>
| >> ***
|
|