Services & Resources / Wolfram Forums
-----
 /
MathGroup Archive
2004
*January
*February
*March
*April
*May
*June
*July
*August
*September
*October
*November
*December
*Archive Index
*Ask about this page
*Print this page
*Give us feedback
*Sign up for the Wolfram Insider

MathGroup Archive 2004

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: bug in IntegerPart ?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg47769] Re: bug in IntegerPart ?
  • From: ancow65 at yahoo.com (AC)
  • Date: Mon, 26 Apr 2004 02:41:13 -0400 (EDT)
  • References: <c6g015$4lk$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

"DrBob" <drbob at bigfoot.com> wrote in message news:<c6g015$4lk$1 at smc.vnet.net>...
> There's NO reason to be puzzled. 1.65 and 1.3 can't be represented exactly
> in binary, so of course their difference may not be exact, either. Hence the
> division problems have different numerators.

Your 'explanation' makes no sense whatsoever. Mathematica's binary
representations of 1.65-1.3 and 0.35 are the same. That can be seen by
comparing
  BaseForm[1.65 - 1.3, 2]
with
  BaseForm[0.35,2]

The problem occurs because Mathematica changes, what is apparently
intended as an exact number, 1.65-1.3 (=0.35) to 0.34999999999999987
but leaves 0.35 unchanged.

Here is an additional reason for concerns. 

{Accuracy[#], Precision[#]} &[0.35] 
 => {16.4105, MachinePrecision}

BaseForm[0.35, 2]
 => 0.010110011001100110011

(n = 2^^0.010110011001100110011 )
 => 0.350000

Notice the unussual display of trailing zeros. 

{Accuracy[#], Precision[#]} &[n]
 => {6.32163, 5.8657}

I admit to be utterly confused by that loss of accuracy and precision.

Additionally, a completely legitimate expression
2^^BaseForm[0.35`, 2]
produces a syntax error message.


> 
> RealDigits[0.35, 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}
> RealDigits[1.65 - 1.3, 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, 0, 0}, 
>   -1}
> 
> DrBob
> 
> www.eclecticdreams.net
>   
> 
> -----Original Message-----
> From: Dennis de Lang [mailto:lang.NO at science.uva.nl] 
To: mathgroup at smc.vnet.net
> Subject: [mg47769]  bug in IntegerPart ?
> 
> Why does the following happen?
> 
> In[1]:= (1.65 - 1.3)/0.007
> Out[1]:= 50.
> In[2]:= IntegerPart[%]
> Out[2]:= 49
> 
> but:
> 
> In[1]:= 0.35/0.007
> Out[1]:= 50.
> In[2]:= IntegerPart[%]
> Out[2]:= 50
> 
> I'm puzzled....
> - Dennis


  • Prev by Date: Re: Parametric Plot
  • Next by Date: Re: MathJFrame, MathGraphicsJPanel question
  • Previous by thread: Re: bug in IntegerPart ?
  • Next by thread: Re: Re: bug in IntegerPart ?