test zero to 8 instead of 10 places, workaround for rounding error affecting a real-world transaction
This commit is contained in:
		
							parent
							
								
									d52283f314
								
							
						
					
					
						commit
						4120a874d8
					
				| @ -150,7 +150,8 @@ isZeroAmount = null . filter (`elem` "123456789") . showAmountWithoutPrice | |||||||
| -- | Is this amount "really" zero, regardless of the display precision ? | -- | Is this amount "really" zero, regardless of the display precision ? | ||||||
| -- Since we are using floating point, for now just test to some high precision. | -- Since we are using floating point, for now just test to some high precision. | ||||||
| isReallyZeroAmount :: Amount -> Bool | isReallyZeroAmount :: Amount -> Bool | ||||||
| isReallyZeroAmount = null . filter (`elem` "123456789") . printf "%.10f" . quantity | isReallyZeroAmount = null . filter (`elem` "123456789") . printf ("%."++show zeroprecision++"f") . quantity | ||||||
|  |     where zeroprecision = 8 | ||||||
| 
 | 
 | ||||||
| -- | Access a mixed amount's components. | -- | Access a mixed amount's components. | ||||||
| amounts :: MixedAmount -> [Amount] | amounts :: MixedAmount -> [Amount] | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user