Search Perl pages
Professions, Sciences, Humanities, Business, ...
Text-based, GUI, Audio, Video, Keyboards, Mouse, Images,...
Conversions, tests, processing, manipulation,...
Integer, Floating point, Matrix, Statistics, Boolean, ...
Algorithms, Memory, Process control, Debugging, ...
Data storage, Integrity, Encryption, Compression, ...
Networks, protocols, Interprocess, Remote, Client Server, ...
Timing, Calendar and Clock, Audio, Video, Printer, Controls...
Management, Filtering, File & Directory access, Viewers, ...
Next: Why isn't my octal data interpreted correctly?
Internally, your computer represents floating-point numbers in binary.
Floating-point numbers read in from a file, or appearing as literals in
your program, are converted from their decimal floating-point
representation (eg, 19.95) to the internal binary representation.
However, 19.95 can't be precisely represented as a binary floating-point
number, just like 1/3 can't be exactly represented as a decimal
floating-point number. The computer's binary representation of 19.95,
therefore, isn't exactly 19.95.
When a floating-point number gets printed, the binary floating-point
representation is converted back to decimal. These decimal numbers are
displayed in either the format you specify with
the current output format for numbers (see $# if you use print.
$# has a different default value in Perl5 than it did in Perl4. Changing
$# yourself is deprecated.
This affects all computer languages that represent decimal floating-point numbers in binary,
not just Perl. Perl provides arbitrary-precision decimal numbers with the
Math::BigFloat module (part of the standard Perl distribution), but
mathematical operations are consequently slower.
To get rid of the superfluous digits, just use a format (eg,
printf("%.2f", 19.95)) to get the required precision.
Source: Perl FAQ: Data Manipulation
Copyright: Copyright (c) 1997 Tom Christiansen and Nathan Torkington.
Previous: Data: Numbers
(Corrections, notes, and links courtesy of RocketAware.com)
Up to: Floating point math
Search | About | Comments | Submit Path: RocketAware > Perl >
RocketAware.com is a service of Mib Software
Copyright 2000, Forrest J. Cavalier III. All Rights Reserved.
We welcome submissions and comments