[poincare] Number: "12242" is parsed as a BasedInteger instead of a

Rational
This commit is contained in:
Émilie Feral
2019-12-10 15:09:33 +01:00
committed by Léa Saviot
parent ce85fa2185
commit aabe663376
2 changed files with 2 additions and 3 deletions

View File

@@ -52,6 +52,7 @@ public:
/* The constructor build a irreductible fraction */
BasedInteger(const BasedIntegerNode * node) : Number(node) {}
static BasedInteger Builder(const char * digits, size_t size, Integer::Base base);
static BasedInteger Builder(const Integer & m, Integer::Base base);
// TreeNode
BasedIntegerNode * node() const { return static_cast<BasedIntegerNode *>(Number::node()); }
@@ -60,8 +61,6 @@ public:
Integer integer() const { return node()->integer(); }
private:
static BasedInteger Builder(const Integer & m, Integer::Base base);
BasedIntegerNode * node() { return static_cast<BasedIntegerNode *>(Number::node()); }
/* Simplification */

View File

@@ -45,7 +45,7 @@ Number Number::ParseNumber(const char * integralPart, size_t integralLength, con
if (exponentLength == 0 && decimalLenght == 0) {
Integer i(integralPart, integralLength, false);
if (!i.isOverflow()) {
return Rational::Builder(i);
return BasedInteger::Builder(i, Integer::Base::Decimal);
}
}
int exp;