Can you give some more detail on "does not work". ? What you wrote should not be off by a factor of ten.
On the inexact and rounding thing, that usually takes place about six decimal digits out.
People are used to base ten. So we are fine with 0.1 or 0.2 or 0.9321 and similar. That 0.9321 is represented as 9/10 + 3/100 + 2/1000 + 1/10000.
But in base ten we get really messed up when trying to represent a fraction like 2/3. We write 0.666666, repeating forever because we cannot exactly represent it. No matter how hard we try in base ten, it will always be an inexact representation of 2/3.
The same thing applies in other number bases.
Computers are base two. They do fractions as 1/2, 1/4, 1/8, 1/16, 1/32, 1/64. They are combined the same way we add 1/10, 1/100, 1/1000, 1/10000.
Trying to represent 0.6 will never work out exactly in base two. As a fractional binary is 0.1001 1001 1001 1001... that is, 1/2 + 1/16 + 1/32 + 1/256 + 1/512 + 1/4096, which Google says is 0.59985351562. It gets really close to 0.6, just like 0.66666 in base ten gets really close to 2/3.
Whenever you work with floating point numbers, it is best to think of them as approximations. They are usually right within a small tolerance. There are technical rules for figuring out the precision, but they're probably more than you want in this post.
Since they're approximations, and since only a limited number of bits fit in a value, any time you mix floating points that are different orders of magnitude, about six digits different, the math tends to break down quickly. So if you've got very small values of acceleration combined with very large forces, the math can break down when the processor tries to convert them to the same scale for the operations.