-
Notifications
You must be signed in to change notification settings - Fork 0
/
entero.js
31 lines (29 loc) · 1.14 KB
/
entero.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import Numero from "./numero";
import Fraccion from "./fraccion";
import { Fraction } from 'fractional';
export default class Entero extends Numero {
sumar(unSumando) {
if (unSumando instanceof Entero) {
return new Entero(this._valor + unSumando._valor);
} else if (unSumando instanceof Fraccion) {
const thisFraction = new Fraction(this._valor, 1);
const fractionToAdd = new Fraction(unSumando.numerador, unSumando.denominador);
const result = thisFraction.add(fractionToAdd);
return new Fraccion(result.numerator, result.denominator);
} else {
throw "Tipo de numero inesperado";
}
}
restar(unSustraendo) {
if (unSustraendo instanceof Entero) {
return new Entero(this._valor - unSustraendo._valor);
} else if (unSustraendo instanceof Fraccion) {
const thisFraction = new Fraction(this._valor, 1);
const fractionToSubtract = new Fraction(unSustraendo.numerador, unSustraendo.denominador);
const result = thisFraction.subtract(fractionToSubtract);
return new Fraccion(result.numerator, result.denominator);
} else {
throw "Tipo de numero inesperado";
}
}
}