Re: Unexpected behavior of Floor and IntegerPart

• To: mathgroup at smc.vnet.net
• Subject: [mg97918] Re: [mg97872] Unexpected behavior of Floor and IntegerPart
• From: Bob Hanlon <hanlonr at cox.net>
• Date: Wed, 25 Mar 2009 05:46:42 -0500 (EST)
• Reply-to: hanlonr at cox.net

```The observed behavior is consistent. If you want the functions to behave
based on the apparent values rather than the machine numbers, then use
Rationalize or Round to whatever precision level that you want. This
will probably just shift the "unexpected behavior" to some other
condition.

myIntegerPart[x_] :=
IntegerPart[Rationalize[x]]

myFloor[x_] := Floor[Rationalize[x]]

myIntegerPart[0.29*100]

29

myFloor[0.29*100]

29

Bob Hanlon

On Tue, Mar 24, 2009 at 8:07 AM , Curtis Osterhoudt wrote:

> Dear List,
>    I'm sure this is a result of non-infinite-precision arithmetic, but
> it would be nice to have a more consistent behavior:
>
> In[26]:= IntegerPart[0.29*100]
>
> Out[26]= 28
>
> In[25]:= Floor[0.29*100]
>
> Out[25]= 28
>
> In[27]:= Floor[(29/100)*100]
>
> Out[27]= 29
>
> In[32]:= (Floor[#1*100] & ) /@ Range[0, 1, 0.01]
>
> Out[32]= {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, \
> 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 28, 30, 31, 32, 33, \
> 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, \
> 51, 52, 53, 54, 55, 56, 57, 57, 59, 60, 61, 62, 63, 64, 65, 66, 67,
> 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, \
> 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100}
>
> In[33]:= Differences[%]
>
> Out[33]= {1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> \
> 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, \
> 1,    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 2, 1, 1, 1, 1, 1, 1,
> 1, \
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}
>
>
>
> An interesting hint as to what may be happening is obtained by:
>
> ListPlot[Differences[(Floor[#1*100] & ) /@ Range[0, 100, 0.01]]]
>
>                      Regards,                                     C.O.
>
>
>
> --
> ==========================================================
> Curtis Osterhoudt
> cfo at remove_this.lanl.and_this.gov
> PGP Key ID: 0x4DCA2A10
> Please avoid sending me Word or PowerPoint attachments
> See http://www.gnu.org/philosophy/no-word-attachments.html
> ==========================================================

```

• Prev by Date: UNDO and Mathematica - how useless is it?
• Next by Date: Re: Re: Recursive algorithm
• Previous by thread: Re: Unexpected behavior of Floor and IntegerPart
• Next by thread: Re: Unexpected behavior of Floor and IntegerPart