Re: Puzzled by IntegerPart
- To: mathgroup at smc.vnet.net
- Subject: [mg114712] Re: Puzzled by IntegerPart
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Mon, 13 Dec 2010 06:35:07 -0500 (EST)
- Reply-to: hanlonr at cox.net
I agree that just increasing the precision is insufficient and that IntegerPart[100*1.15`20] was just a fluke. Rationalize is much more reliable. However, you should extend the precision of 1.15 not the product.
{#, num = 100*ToExpression[ToString[1.15] <> "`" <> ToString[#]],
Style[num = IntegerPart[num],
If[num == 114, Red, Black]]} & /@ Range[5, 50] // Grid
Bob Hanlon
---- Barrie Stokes <Barrie.Stokes at newcastle.edu.au> wrote:
=============
Hi Bob
The problem for Themis is not explained, even if resolved by IntegerPart[Rationalize[...]], I think:
num =100*1.15
%//FullForm
IntegerPart[num]
num =100*1.15`20
%//FullForm
IntegerPart[num]
num =100*1.15`21
%//FullForm
IntegerPart[num]
num =100*1.15`22
%//FullForm
IntegerPart[num]
num =100*1.15`50
%//FullForm
IntegerPart[num]
num =100*1.15`100
%//FullForm
IntegerPart[num]
What happens in my PC at 22 (and more) that IntegerPart[num] gives 114 again??
A bigger picture is given by
Table[ {ndp,
num = ToExpression[
StringTake[ ToString[ 100*1.15 // Hold ], {6, 13}] <> "`" <>
ToString[ ndp ] ], FullForm[num], IntegerPart[ num ]}, {ndp, 5,
50, 1} ] // MatrixForm
Barrie
>>> On 10/12/2010 at 6:32 pm, in message <201012100732.CAA06914 at smc.vnet.net>, Bob
Hanlon <hanlonr at cox.net> wrote:
> 100*1.15
>
> 115.
>
> % // InputForm
>
> 114.99999999999999
>
> Increase input precision
>
> IntegerPart[100*1.15`20]
>
> 115
>
> IntegerPart[Rationalize[100*1.15]]
>
> 115
>
>
> Bob Hanlon
>
> ---- Themis Matsoukas <tmatsoukas at me.com> wrote:
>
> =============
> IntegerPart[100*1.15]
>
> 114
>
> ???
>
> Themis