4

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}*).

John
  • 4,361
  • 1
  • 26
  • 41

1 Answers1

6

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.

Chris Degnen
  • 30,927
  • 2
  • 54
  • 108