I'm assuming, by the phrasing "array could be multiplied", that you must multiply all numbers in the array by the same factor in order to achieve integers everywhere.

Here's one algorithm:

Code:

For each entry in the array:
count the number of decimal places, $\displaystyle n$, that are present
Let $\displaystyle x$ be the numbers beyond the decimal place, expressed as an integer
let $\displaystyle y_{n} = 10^n / \gcd(10^n, x)$
Let $\displaystyle y = \text{lcm}(y_1, y_2, ... , y_n)$

Then $\displaystyle y$ is the number you're after.

Here's your three numbers as an example:

For $\displaystyle 102.56$, $\displaystyle n=2$. Let $\displaystyle x=56.$ Then $\displaystyle y_{1}=10^{2}/\gcd(10^{2},56)=100/4=25.$ (Check: $\displaystyle 102.56\times 25=2564,$ an integer.)

For $\displaystyle -79.35$, $\displaystyle n=2$. Let $\displaystyle x=35.$ Then $\displaystyle y_{2}=10^{2}/\gcd(10^{2},35)=100/5=20.$ (Check: $\displaystyle -79.35\times 20=-1587,$ an integer.)

For $\displaystyle 34.1$, $\displaystyle n=1$. Let $\displaystyle x=1.$ Then $\displaystyle y_{3}=10^{1}/\gcd(10^{1},1)=10/1=10.$ (Check: $\displaystyle 34.1\times 10=341,$ an integer.)

Finally, let $\displaystyle y=\text{lcm}(y_{1},y_{2},y_{3})=\text{lcm}(25,20,1 0)=100,$ which certainly works for your situation. You could dream up an example where the final factor is less than that, but your numbers beyond the decimals would have to have more factors in common than your example.

Does this make sense?