Well, as you hinted at I encountered those problems long time ago (I guess the first time a non-german user used one of my games).

But there is a simple solution : Replace the decimal separator yourself before storing and loading values. This is what I now do in all my apps/games and this is how I do it :

Saving values :
- Convert floating point value to string
- Replace the current decimal separator (stored in System.DecimalSeparator) with a '.' (always, no matter what language)
- Save to e.g. XML-Node

Loading values :
- Get string
- Replace all '.' with current decimal separator. So for e.g. german OS '.' will be replaced with ',', for all langauges using '.' nothing is changed
- Convert back to float

Another possibility would be to what LifePower mentioned, though I prefer the above one as I usually save/load to/from XML and it doesn't matter what value type you store to a node. And also this allows me to format my floats before saving them.