4
$\begingroup$

Possible Duplicate:
Is this the most efficient way to round approximate integers to integers while leaving other Reals untouched?

Please consider the following:

data={123.,56.,45.};
Head/@data
(*result: {Real,Real,Real}*)

How do I change the numbers in data into integers, so:

dataConv=MyFunction/@data;
Head/@dataConv
(*result: {Integer,Integer,Integer}*)

EDIT

Also interesting could be to change "real" reals like {12.3,10.555} into integers by returning only the numbers before the decimal separator (*result: {12,10}*).

$\endgroup$
1
  • $\begingroup$ Why not Round[data] and Floor[data] ? $\endgroup$ Sep 21, 2012 at 13:48

1 Answer 1

6
$\begingroup$

Simply ...

dataConv = IntegerPart /@ data;
Head /@ dataConv

{Integer, Integer, Integer}

But beware of machine precision:

x = 6250*0.292
IntegerPart[%]

1825.

1824

May be better to use Round as suggested.

$\endgroup$

Not the answer you're looking for? Browse other questions tagged or ask your own question.