Бучина - Лабораторная работа #2

Извиняюсь, я немного не понял. Изначально дробь у вас корректная, хотя и "на грани".

У меня была идея несколько изменить дизайн. Операторы вы реализуете в расширенных типах, после чего вызываете CheckValue. Я бы предложил немного упростить дизайн. А именно, завести приватный конструктор, принимающий int64. И тогда CheckValue можно делать внутри этого конструктора, тем самым код ваших операторов несколько облегчится.

Но это так, на правах пожелания...