17 -> 0x10001 mantissa
-1 -> 0xfffff  exponent ( or however many bits the exponent is 
represented by
exact

------------
Scott Doctor
scott at scottdoctor.com

On 10/23/2015 12:46 AM, Keith Medcalf wrote:
> You are thinking (and typing) in base 10.  Computers use this new-fangled 
> thing called binary -- base 2.
> The "floating point" type is IEEE 754 double precision binary (base 2) 
> floating point.
>
> SQLite does not use decimal floating point (IEEE 854-1987) or General Decimal 
> Arithmetic
> http://speleotrove.com/decimal/decarith.html
> as specified by IBM and implemented in many non-lite SQL Engines.
>
>
>> -----Original Message-----
>> From: sqlite-users-bounces at mailinglists.sqlite.org [mailto:sqlite-users-
>> bounces at mailinglists.sqlite.org] On Behalf Of Scott Doctor
>> Sent: Friday, 23 October, 2015 01:31
>> To: General Discussion of SQLite Database
>> Subject: Re: [sqlite] Simple Math Question
>>
>> Something sounds wrong with this floating point issue. His example
>> consists of two digit numbers with simple addition. The number 1.7 would
>> be represented by the value 17 and an exponent of -1, which is an exact
>> number, same with his other numbers. His math operations should give
>> exact results since the operations are simple addition. Since he is not
>> doing any multiplication or division, there should not be any resolution
>> issues. His results using his simple equations should give exact
>> answers. So something is not handling the numbers properly if he is not
>> getting exact results. If the claims about floating point results in
>> sqlite are as stated in this thread of messages then floating point
>> should be entirely avoided and eliminated from sqlite as this implies
>> that floating point operations are improperly implemented rendering
>> useless and incorrect results.
>>
>> ------------
>> Scott Doctor
>> scott at scottdoctor.com
>>
>> On 10/23/2015 12:14 AM, Dominique Devienne wrote:
>>> On Thu, Oct 22, 2015 at 11:55 PM, Igor Tandetnik <igor at tandetnik.org>
>> wrote:
>>>> On 10/22/2015 4:25 PM, Rousselot, Richard A wrote:
>>>>
>>>>> FWIW, MySQL and Oracle both return all yes for that query.
>>>>>
>>>> In MySQL, 9.2 is a literal of DECIMAL type, which is in fact
>> represented
>>>> as a finite decimal fraction. SQLite doesn't have such a type. You
>> would
>>>> likely observe similar results in MySQL if you write your constants
>> like
>>>> this: 9.2e0 (scientific notation makes them have FLOAT or DOUBLE type).
>>>>
>>> And oracle's NUMBER can be up to 20 bytes (21 unsigned), stores number
>> is
>>> base-100, i.e. each byte represents 2 base-10 digits.
>>> http://www.orafaq.com/wiki/Number
>>>
>>> SQLite only uses IEEE double, which often cannot represent accurately
>> even
>>> small (as in text) numbers with a decimal point. You can use Oracle's
>>> BINARY_DOUBLE to force it using an IEEE double. FWIW. --DD
>>> _______________________________________________
>>> sqlite-users mailing list
>>> sqlite-users at mailinglists.sqlite.org
>>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>>>
>>>
>> _______________________________________________
>> sqlite-users mailing list
>> sqlite-users at mailinglists.sqlite.org
>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
>
> _______________________________________________
> sqlite-users mailing list
> sqlite-users at mailinglists.sqlite.org
> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users
>
>

Reply via email to