2
$\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$

marked as duplicate by rm -rf, Sjoerd C. de Vries Sep 21 '12 at 14:41

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

  • $\begingroup$ Why not Round[data] and Floor[data] ? $\endgroup$ – b.gates.you.know.what Sep 21 '12 at 13:48
5
$\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.