The correct value (80.46) is lost in the 3rd line, when multiplied by 100.0 - it becomes 8045.999999999 and after conversion to long it becomes 8045.
For a quick hack, the fieldValue should be always right-padded with "1" to avoid this situation (80.461). For a more decent solution, the amount shouldn't probably be even kept as a long value.
/src/ru/ orangesoftware/ financisto/ export/ csv/CsvImport. java (revision 365):
else if (transactionFie ld.equals( "amount" )) { parseDouble( fieldValue) ; fromAmount = fromAmountDoubl e.longValue( );
double fromAmount = Double.
Double fromAmountDouble = fromAmount * 100.0;
transaction.
The correct value (80.46) is lost in the 3rd line, when multiplied by 100.0 - it becomes 8045.999999999 and after conversion to long it becomes 8045.
For a quick hack, the fieldValue should be always right-padded with "1" to avoid this situation (80.461). For a more decent solution, the amount shouldn't probably be even kept as a long value.