[Gnucash-changes] re-order math to make overflow less likely

Linas Vepstas linas at cvs.gnucash.org
Fri Jul 2 00:05:25 EDT 2004


Log Message:
-----------
re-order math to make overflow less likely

Modified Files:
--------------
    gnucash/src/engine:
        Scrub2.c

Revision Data
-------------
Index: Scrub2.c
===================================================================
RCS file: /home/cvs/cvsroot/gnucash/src/engine/Scrub2.c,v
retrieving revision 1.34
retrieving revision 1.35
diff -Lsrc/engine/Scrub2.c -Lsrc/engine/Scrub2.c -u -r1.34 -r1.35
--- src/engine/Scrub2.c
+++ src/engine/Scrub2.c
@@ -248,7 +248,7 @@
       Split *s = node->data;
       Transaction *txn = s->parent;
       gnc_numeric dst_amt, dst_val, target_val;
-      gnc_numeric delta;
+      gnc_numeric frac, delta;
       int scu;
 
       /* Skip the reference split */
@@ -258,9 +258,9 @@
 
       dst_amt = xaccSplitGetAmount (s);
       dst_val = xaccSplitGetValue (s);
-      target_val = gnc_numeric_mul (dst_amt, src_val,
+      frac = gnc_numeric_div (dst_amt, src_amt, 
                         GNC_DENOM_AUTO, GNC_HOW_DENOM_REDUCE);
-      target_val = gnc_numeric_div (target_val, src_amt,
+      target_val = gnc_numeric_mul (frac, src_val,
                         scu, GNC_HOW_DENOM_EXACT|GNC_HOW_RND_ROUND);
       if (gnc_numeric_check (target_val))
       {


More information about the gnucash-changes mailing list