Example of working in integers to avoid floating point errors
Michael G. Schwern [Tue, 29 May 2001 18:51:32 +0000 (19:51 +0100)]
Message-ID: <20010529185132.C706@blackrider.blackstar.co.uk>

p4raw-id: //depot/perl@10301

pod/perlfaq4.pod

index 069340d..87fd66a 100644 (file)
@@ -39,6 +39,11 @@ arbitrary-precision decimal numbers with the Math::BigFloat module
 (part of the standard Perl distribution), but mathematical operations
 are consequently slower.
 
+If precision is important, such as when dealing with money, its good
+to work with integers and then divide at the last possible moment.
+For example, work in pennies (1995) instead of dollars and cents
+(19.95) and divide by 100 at the end.
+
 To get rid of the superfluous digits, just use a format (eg,
 C<printf("%.2f", 19.95)>) to get the required precision.
 See L<perlop/"Floating-point Arithmetic">.