Есть две причины, по которым присваивание типа int двойному или плавающему может потерять точность:
Взгляните на Руководство по составным приложениям из группы «Шаблоны и практики».
Оно специально предназначено для этого, включая использование MVVM для WPF / Silverlight в больших масштабах приложения, и как решать проблемы бизнес-логики и т. д.