in reply to For loop wierdness
$ perldoc -q decimal Found in /opt/perl/lib/5.8.1/pod/perlfaq4.pod Why am I getting long decimals (eg, 19.9499999999999) instead of the numbers I should be getting (eg, 19.95)? Internally, your computer represents floating- point numbers in binary. Digital (as in powers of two) computers cannot store all numbers exactly. Some real numbers lose precision in the process. This is a problem with how computers store numbers and affects all computer languages, not just Perl. perlnumber show the gory details of number repre- sentations and conversions. To limit the number of decimal places in your num- bers, you can use the printf or sprintf function. See the "Floating Point Arithmetic" for more details. printf "%.2f", 10/3; my $number = sprintf "%.2f", 10/3;
Abigail
|
|---|