gnucash master: Fix still more overflow problems.

Mike Alexander mta at code.gnucash.org
Sat Feb 22 17:46:14 EST 2014


Updated	 via  https://github.com/Gnucash/gnucash/commit/d0766a6b (commit)
	from  https://github.com/Gnucash/gnucash/commit/6925192a (commit)



commit d0766a6bb4a9249cf6584696fae85092ec22317d
Author: Mike Alexander <mta at umich.edu>
Date:   Sat Feb 22 17:43:28 2014 -0500

    Fix still more overflow problems.

diff --git a/src/report/standard-reports/advanced-portfolio.scm b/src/report/standard-reports/advanced-portfolio.scm
index ac100e0..bd7b6b4 100644
--- a/src/report/standard-reports/advanced-portfolio.scm
+++ b/src/report/standard-reports/advanced-portfolio.scm
@@ -257,10 +257,10 @@
 			  (gnc-numeric-add b-value
 					   (gnc-numeric-mul (caar b-list)
 							    (cdar b-list) 
-							    GNC-DENOM-AUTO GNC-RND-ROUND)
-					   GNC-DENOM-AUTO GNC-RND-ROUND)
+							    GNC-DENOM-AUTO GNC-DENOM-REDUCE)
+					   GNC-DENOM-AUTO GNC-DENOM-REDUCE)
 			  (gnc-numeric-add b-units
-					   (caar b-list) GNC-DENOM-AUTO GNC-RND-ROUND)
+					   (caar b-list) GNC-DENOM-AUTO GNC-DENOM-REDUCE)
 			  price-denom GNC-RND-ROUND)))
 	     (append b-list 
 		     (list (cons b-units (gnc-numeric-div
@@ -281,7 +281,7 @@
                  (let* ((new-units (gnc-numeric-add b-units (caar b-list) units-denom GNC-RND-ROUND))
                         (old-val (gnc-numeric-mul (caar b-list) (cdar b-list) currency-frac GNC-RND-ROUND))
                         (new-val (gnc-numeric-mul old-val 
-                                                  (gnc-numeric-div new-units (caar b-list) GNC-DENOM-AUTO GNC-RND-ROUND)
+                                                  (gnc-numeric-div new-units (caar b-list) GNC-DENOM-AUTO GNC-DENOM-REDUCE)
                                                   currency-frac GNC-RND-ROUND)))
                     (basis-builder (cdr b-list) new-units new-val b-method currency-frac))) 
                ((0)
@@ -300,7 +300,7 @@
                  (let* ((new-units (gnc-numeric-add b-units (caar rev-b-list) units-denom GNC-RND-ROUND))
                         (old-val (gnc-numeric-mul (caar rev-b-list) (cdar rev-b-list) currency-frac GNC-RND-ROUND))
                         (new-val (gnc-numeric-mul old-val 
-                                                  (gnc-numeric-div new-units (caar rev-b-list) GNC-DENOM-AUTO GNC-RND-ROUND)
+                                                  (gnc-numeric-div new-units (caar rev-b-list) GNC-DENOM-AUTO GNC-DENOM-REDUCE)
                                                   currency-frac GNC-RND-ROUND)))
                     (basis-builder (reverse (cdr rev-b-list)) new-units new-val b-method currency-frac)
                  ))
@@ -324,12 +324,12 @@
      ((and (gnc-numeric-zero-p b-value)
 	   (not (gnc-numeric-zero-p b-units)))
 	(let* ((current-units (units-basis b-list))
-	       (units-ratio (gnc-numeric-div (gnc-numeric-add b-units current-units GNC-DENOM-AUTO GNC-RND-ROUND) 
-					     current-units GNC-DENOM-AUTO GNC-RND-ROUND))
+	       (units-ratio (gnc-numeric-div (gnc-numeric-add b-units current-units GNC-DENOM-AUTO GNC-DENOM-REDUCE) 
+					     current-units GNC-DENOM-AUTO GNC-DENOM-REDUCE))
                ;; If the units ratio is zero the stock is worthless and the value should be zero too 
 	       (value-ratio (if (gnc-numeric-zero-p units-ratio)
 	                        (gnc-numeric-zero)
-                                (gnc-numeric-div (gnc:make-gnc-numeric 1 1) units-ratio GNC-DENOM-AUTO GNC-RND-ROUND))))
+                                (gnc-numeric-div (gnc:make-gnc-numeric 1 1) units-ratio GNC-DENOM-AUTO GNC-DENOM-REDUCE))))
 	  
 	  (gnc:debug "blist is " b-list " current units is " 
 	             (gnc-numeric-to-string current-units) 
@@ -344,8 +344,8 @@
      ((and (gnc-numeric-zero-p b-units)
 	   (not (gnc-numeric-zero-p b-value)))
       (let* ((current-value (sum-basis b-list GNC-DENOM-AUTO))
-	     (value-ratio (gnc-numeric-div (gnc-numeric-add b-value current-value GNC-DENOM-AUTO GNC-RND-ROUND) 
-					   current-value GNC-DENOM-AUTO GNC-RND-ROUND)))
+	     (value-ratio (gnc-numeric-div (gnc-numeric-add b-value current-value GNC-DENOM-AUTO GNC-DENOM-REDUCE) 
+					   current-value GNC-DENOM-AUTO GNC-DENOM-REDUCE)))
 	  
 	(gnc:debug "this is a spinoff")
 	(gnc:debug "blist is " b-list " value ratio is " (gnc-numeric-to-string value-ratio))
@@ -648,7 +648,7 @@
                        (if (and (not (eq? handle-brokerage-fees 'ignore-brokerage))
                                 (gnc-numeric-positive-p trans-brokerage)
                                 (gnc-numeric-positive-p trans-shares))
-                           (let* ((fee-frac (gnc-numeric-div shares-bought trans-shares GNC-DENOM-AUTO GNC-RND-ROUND))
+                           (let* ((fee-frac (gnc-numeric-div shares-bought trans-shares GNC-DENOM-AUTO GNC-DENOM-REDUCE))
                                   (fees (gnc-numeric-mul trans-brokerage fee-frac commod-currency-frac GNC-RND-ROUND)))
                                  (set! trans-bought (gnc-numeric-add trans-bought fees commod-currency-frac GNC-RND-ROUND)))) 
                        
@@ -725,7 +725,7 @@
 			               (orig-basis (sum-basis basis-list currency-frac))
 			               ;; proportion of the fees attributable to this split
 			               (fee-ratio (gnc-numeric-div (gnc-numeric-abs split-units) trans-shares
-			                                           GNC-DENOM-AUTO GNC-RND-ROUND))
+			                                           GNC-DENOM-AUTO GNC-DENOM-REDUCE))
 			               ;; Fees for this split in report currency 
 			               (fees-currency (gnc:gnc-monetary-amount (my-exchange-fn 
 			                               (gnc:make-gnc-monetary commod-currency



Summary of changes:
 src/report/standard-reports/advanced-portfolio.scm | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)



More information about the gnucash-changes mailing list