Re: Bug 1+4/10
- To: mathgroup at smc.vnet.net
- Subject: [mg120034] Re: Bug 1+4/10
- From: Peter Breitfeld <phbrf at t-online.de>
- Date: Wed, 6 Jul 2011 07:05:36 -0400 (EDT)
- References: <iv1acv$sk7$1@smc.vnet.net>
"slawek" wrote: > Let check > > In[1]:= 1.4 == 1 + 4/10 > Out[1]= True > > In[2]:= a = SetPrecision[1.4, 30] > Out[2]= 1.39999999999999991118215802999 > > In[3]:= b = SetPrecision[1 + 4/10, 30] > Out[3]= 1.40000000000000000000000000000 > > No comment is needed. > > slawek > Thats documentated behaviour. In the help of Equal (Scope/Numeric Equalities): Approximate numbers that differ in their last seven binary digits are considered equal. (this are about the two last decimals) RealDigits[1.4, 2] RealDigits[1 + 4/10, 2] {{1, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0}, 1} {{1, {0, 1, 1, 0}}, 1} or RealDigits[1.4] RealDigits[1 + 4/10] {{1, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, 1} {{1, 4}, 1} There is no difference in the last 2 decimals. But 1.4===1+4/10 False SameQ returns True, if the numbers differ in the last binary digit only, so and have the same head. (1.4 is a Real, but 1+4/10 is Rational, so SameQ returns False) -- _________________________________________________________________ Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de