diff options
author | Mike Buland <mike@xagasoft.com> | 2014-10-30 15:49:41 -0600 |
---|---|---|
committer | Mike Buland <mike@xagasoft.com> | 2014-10-30 15:49:41 -0600 |
commit | 301844ef30b44966463ab22d6a518bc302330e1e (patch) | |
tree | dfdd7f5de0d24d5f9b3332a559548edd95df9522 /src | |
parent | c267a6706b1cf5b2eaae042eb41e94ece67b5467 (diff) | |
download | clic-301844ef30b44966463ab22d6a518bc302330e1e.tar.gz clic-301844ef30b44966463ab22d6a518bc302330e1e.tar.bz2 clic-301844ef30b44966463ab22d6a518bc302330e1e.tar.xz clic-301844ef30b44966463ab22d6a518bc302330e1e.zip |
Maybe better? conversions aren't always good.
I'm not sure what part is broken yet though.
Diffstat (limited to 'src')
-rw-r--r-- | src/number.cpp | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/src/number.cpp b/src/number.cpp index c680a50..9a7da17 100644 --- a/src/number.cpp +++ b/src/number.cpp | |||
@@ -437,7 +437,7 @@ void Number::divide( const Number &rhs, Number &q, Number &r ) const | |||
437 | nNum.aInt.append( digit( j ) ); | 437 | nNum.aInt.append( digit( j ) ); |
438 | } | 438 | } |
439 | // Bu::println("New numerator: %1").arg( nNum ); | 439 | // Bu::println("New numerator: %1").arg( nNum ); |
440 | while( iAnchor > -iScale && (!nNum.isZero() || iAnchor > 0)) // division loop | 440 | while( iAnchor >= -iScale && (!nNum.isZero() || iAnchor > 0)) // division loop |
441 | { | 441 | { |
442 | // As long as the numerator is smaller than the divisor we keep | 442 | // As long as the numerator is smaller than the divisor we keep |
443 | // including new digits. | 443 | // including new digits. |
@@ -481,26 +481,26 @@ void Number::divide( const Number &rhs, Number &q, Number &r ) const | |||
481 | r.aInt.append( nNum.aInt[j] ); | 481 | r.aInt.append( nNum.aInt[j] ); |
482 | int jtop = 0; | 482 | int jtop = 0; |
483 | for(; nNum.aInt[jtop] == 0; jtop++ ) { } | 483 | for(; nNum.aInt[jtop] == 0; jtop++ ) { } |
484 | // Bu::println("Computing remainder fraction from %1 to %2") | 484 | // Bu::println("Computing remainder fraction from %1 to %2") |
485 | // .arg( -iAnchor-1 ).arg( jtop ); | 485 | // .arg( -iAnchor-1 ).arg( jtop ); |
486 | r.aFrac.clear(); | 486 | r.aFrac.clear(); |
487 | for( int j = -iAnchor-1, k = 0; j >= jtop && k < r.iScale; j--, k++ ) | 487 | for( int j = -iAnchor-1, k = 0; j >= jtop && k < r.iScale; j--, k++ ) |
488 | { | 488 | { |
489 | if( j < nNum.aInt.getSize() ) | 489 | if( j < nNum.aInt.getSize() ) |
490 | { | 490 | { |
491 | r.aFrac.set( k, nNum.aInt[j] ); | 491 | r.aFrac.set( k, nNum.aInt[j] ); |
492 | // Bu::println("setting %1 to %2").arg( k ).arg( nNum.aInt[j] ); | 492 | // Bu::println("setting %1 to %2").arg( k ).arg( nNum.aInt[j] ); |
493 | } | 493 | } |
494 | } | 494 | } |
495 | } | 495 | } |
496 | /* else | 496 | // else |
497 | { | 497 | // { |
498 | Bu::println("iAnchor: %1").arg( iAnchor ); | 498 | // Bu::println("iAnchor: %1").arg( iAnchor ); |
499 | } | 499 | // } |
500 | Bu::println("Quotient: %1").arg( q ); | 500 | // Bu::println("Quotient: %1").arg( q ); |
501 | Bu::println("Final numerator? %1").arg( nNum ); | 501 | // Bu::println("Final numerator? %1").arg( nNum ); |
502 | Bu::println("Remainder? %1").arg( r ); | 502 | // Bu::println("Remainder? %1").arg( r ); |
503 | */ | 503 | |
504 | } | 504 | } |
505 | 505 | ||
506 | bool Number::isZero() const | 506 | bool Number::isZero() const |
@@ -626,6 +626,7 @@ Number Number::toRadix( int iNewRadix, int iNewScale ) const | |||
626 | n.set( iNewRadix ); | 626 | n.set( iNewRadix ); |
627 | while( !me.isZero() ) | 627 | while( !me.isZero() ) |
628 | { | 628 | { |
629 | Bu::println("%1 %% %2 = %3").arg( me ).arg( n ).arg( me%n ); | ||
629 | int dig = (me%n).toInt32(); | 630 | int dig = (me%n).toInt32(); |
630 | ret.aInt.append( dig ); | 631 | ret.aInt.append( dig ); |
631 | me = me / n; | 632 | me = me / n; |