At 22:46 12/08/2014 +0200, Skiper Skippers wrote:
Error
Check =2^53 it shows 9007199254740990

This is not an error!

You are using a finite computing machine - one in which each number in a cell is stored in a memory location of finite length. So there is always a limit to how large an integer can be stored and to how great a precision a floating-point value can be stored. Your computer is probably using "double-precision binary floating-point format", in which numbers are stored in eight-byte (sixty-four-bit) words. This allows around fifty-three significant binary digits, the rest being taken up by the sign and exponent. This level of precision corresponds to between fifteen and sixteen significant decimal digits, so integers can be stored precisely only up to this length of number, above which values can be stored, but only to around fifteen significant digits.

2^53 is one followed by fifty-three zeroes, of course - so is just too long to be stored accurately. You are very unlikely to need numbers of this magnitude as final results, and if you come across this problem, you can usually find a simple way to reorganise your calculation to avoid the problem.

Note that the (biased) exponent is stored in an eleven-bit field, so a separate problem occurs if you try to calculate with numbers above about 2^1023.

For a fuller explanation, see http://en.wikipedia.org/wiki/Double-precision_floating-point_format .

I trust this helps.

Brian Barker


--
To unsubscribe e-mail to: [email protected]
Problems? http://www.libreoffice.org/get-help/mailing-lists/how-to-unsubscribe/
Posting guidelines + more: http://wiki.documentfoundation.org/Netiquette
List archive: http://listarchives.libreoffice.org/global/users/
All messages sent to this list will be publicly archived and cannot be deleted

Reply via email to