Здравствуйте. Возникает ошибка при сборке, которая говорит о неявном преобразовании типов. привожу код теста, где возникает ошибка.
| Код | [Test] public void ConvertToDouble() { double v = new Rational(1, 2); Assert.AreEqual(0.5, v, 1e-7); }
|
Ниже представлен класс
| Код | public class Rational { private int numerator; private int denominator; private double num; private double dom; public double Num { get{return num;} set{num = value;} } public double Dom { get{return dom;} set{dom = value;} } public int Numerator { get{return numerator;} set{numerator = value;} } public int Denominator { get{return denominator;} set{denominator = value;} } public Rational(int numerator, int denominator) { this.numerator = numerator; this.denominator = (denominator > 0) ? denominator:1; } //принимаем одно значение public Rational(int numerator) { this.numerator = numerator; } public bool IsNan { get{ if(denominator==0) return true; else return false; } } public static Rational operator +(Rational a, Rational b) { Rational result = new Rational(1,1); result.denominator = a.denominator*b.denominator; result.numerator = result.denominator/a.numerator + result.denominator/b.numerator; return result; } public static Rational operator -(Rational a, Rational b) { Rational result = new Rational(1,1); result.denominator = a.denominator*b.denominator; result.numerator = result.denominator/a.numerator - result.denominator/b.numerator; return result; } public static Rational operator / (Rational a, Rational b) { Rational result = new Rational(1,1); result.numerator = a.numerator * b.denominator; result.denominator = a.denominator * b.numerator; return result; } public static Rational operator * (Rational a, Rational b) { Rational result = new Rational(1,1); result.numerator = a.numerator*b.numerator; result.denominator = a.denominator*b.denominator; return result; } }
|
Будьте так любезны подсказать, как сделать так, чтобы устранить ошибку? |