Parse amounts from CSV with Decimal and not float.
authorshunyata <empty@cqdr.es>
Fri, 29 Nov 2013 20:27:59 +0000 (15:27 -0500)
committershunyata <empty@cqdr.es>
Fri, 29 Nov 2013 20:27:59 +0000 (15:27 -0500)
This fixes a bug where amounts are read from a CSV file incorrectly due to
floating point representation error. For example, the string 0.009 will be
parsed as 0.00899999, and then converted to 899999, resulting in one fewer
satoshi being sent as part of the transaction generated from the CSV file.

gui/qt/main_window.py

index a3dd082..10ffde2 100644 (file)
@@ -1882,7 +1882,7 @@ class ElectrumWindow(QMainWindow):
         try:
             for row in csvReader:
                 address = row[0]
-                amount = float(row[1])
+                amount = Decimal(row[1])
                 amount = int(100000000*amount)
                 outputs.append((address, amount))
         except (ValueError, IOError, os.error), reason: