The difference you see has to do with the representation of floats as digital numbers, you will always get divergences between decimal and float representations.
What exactly do you need the first decimal for? When you want to display that number use sprintf()
You even may use
HelpInt = (int)(fabs(MyFloat) * 10.0);
Help2Int = HelpInt / 10;
Help2Int *= 10;
FirstDec = HelpInt - Help2Int;
Another way could be to add 0.05 to force rounding
See a discussion about round() here.