r14667 - gnucash/branches/2.0 - Replace exact comparison of doubles by checking for a small enough difference. bug#347791.

Derek Atkins warlord at cvs.gnucash.org
Mon Aug 14 01:12:44 EDT 2006


Author: warlord
Date: 2006-08-14 01:12:42 -0400 (Mon, 14 Aug 2006)
New Revision: 14667
Trac: http://svn.gnucash.org/trac/changeset/14667

Modified:
   gnucash/branches/2.0/
   gnucash/branches/2.0/ChangeLog
   gnucash/branches/2.0/src/import-export/import-backend.c
Log:
Replace exact comparison of doubles by checking for a small enough difference. bug#347791.

Merge from r14648.



Property changes on: gnucash/branches/2.0
___________________________________________________________________
Name: svk:merge
   - d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13053
   + d2ab10a8-8a95-4986-baff-8d511d9f15b2:/local/gnucash/branches/2.0:13054

Modified: gnucash/branches/2.0/ChangeLog
===================================================================
--- gnucash/branches/2.0/ChangeLog	2006-08-14 05:12:34 UTC (rev 14666)
+++ gnucash/branches/2.0/ChangeLog	2006-08-14 05:12:42 UTC (rev 14667)
@@ -7,6 +7,10 @@
 	* gnucash/trunk/src/business/business-reports/owner-report.scm:
 	  Fix untranslated part of string.
 
+	* gnucash/trunk/src/import-export/import-backend.c:
+	  Replace exact comparison of doubles by checking for a small
+	  enough difference. bug#347791.
+
 2006-08-11  Christian Stimming <stimming at tuhh.de>
 
 	* src/business/business-reports/aging.scm:

Modified: gnucash/branches/2.0/src/import-export/import-backend.c
===================================================================
--- gnucash/branches/2.0/src/import-export/import-backend.c	2006-08-14 05:12:34 UTC (rev 14666)
+++ gnucash/branches/2.0/src/import-export/import-backend.c	2006-08-14 05:12:42 UTC (rev 14667)
@@ -595,7 +595,9 @@
       /*DEBUG(" downloaded_split_amount=%f", downloaded_split_amount);*/
       match_split_amount = gnc_numeric_to_double(xaccSplitGetAmount(split));
       /*DEBUG(" match_split_amount=%f", match_split_amount);*/
-      if(downloaded_split_amount == match_split_amount)
+      if(fabs(downloaded_split_amount - match_split_amount) < 1e-6)
+	/* bug#347791: Doubly type shouldn't be compared for exact
+	   equality, so we're using fabs() instead. */
 	/*if (gnc_numeric_equal(xaccSplitGetAmount
 	  (gnc_import_TransInfo_get_fsplit (trans_info)),
 	  xaccSplitGetAmount(split))) 



More information about the gnucash-changes mailing list