MathGroup Archive 2008

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

Search the Archive

Re: IsIntegerOrFloat

  • To: mathgroup at smc.vnet.net
  • Subject: [mg87037] Re: IsIntegerOrFloat
  • From: Peter Breitfeld <phbrf at t-online.de>
  • Date: Sun, 30 Mar 2008 01:14:11 -0500 (EST)
  • References: <fsl214$g77$1@smc.vnet.net>

carlos at colorado.edu schrieb:
> Thanks to all who replied to my previous questions. Those functions work
> fine now. Here is another question - I apologize if it has been asked before.
> I need a function
>
>                  IsIntegerOrFloat[expr]
>
> that returns True if expr, which is generally a flat list, contains
> only integers or floating point numbers, and False otherwise.
> Rational numbers such as 1/2 are considered symbolic for this test; so is
> \[Pi] or Sqrt[5]. Appearance of any symbol, as in 2.0*a+3.5, makes it False.
> As in previous questions, this should work on versions >=4.0.
>
> Use: unified printing of simulation data structures in table formats.
> Expressions containing only integers or floats are filtered through
> PaddedForm[] and ToString[], others through Symbol[].  The end
> result (a flat table of strings) is filtered through TableForm with
> appropriate options.
>

Hi Carlos

this seems to work:

IsIntegerOrFloat[list_] :=
 With[{ll = Flatten@list},
  If[Length[ll] == Length[Cases[ll, _Real | _Integer]],
  True,  False]]
 
l1={1, 2.0, \[Pi], "a", b, Sqrt[2]}
l2 = Union[RandomInteger[{1, 10}, {5}], RandomReal[{1, 10}, {5}]]
l3 = {1, {2.1, {1.6, 2, 5}}, 6}
l4 = {1, {2.1, {1.6, Pi, 5}}, 6}

IsIntegerOrFloat[l1]   --->  False
IsIntegerOrFloat[l2]   --->  True
IsIntegerOrFloat[l3]   --->  True
IsIntegerOrFloat[l4]   --->  False

Gruss Peter
-- 
==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==-==
Peter Breitfeld, Bad Saulgau, Germany -- http://www.pBreitfeld.de


  • Prev by Date: Re: Collect coefficients of array variables during calculation:
  • Next by Date: Re: Re: symbolic evaluation
  • Previous by thread: Re: IsIntegerOrFloat
  • Next by thread: Re: IsIntegerOrFloat