Gene Sullivan > Number-FormatEng-0.01 > Number::FormatEng

Download:
Number-FormatEng-0.01.tar.gz

Dependencies

Annotate this POD

View/Report Bugs
Module Version: 0.01   Source  

NAME ^

Number::FormatEng - Format a number using engineering notation

VERSION ^

This document refers to Number::FormatEng version 0.01.

SYNOPSIS ^

    use Number::FormatEng qw(:all);
    print format_eng(1234);     # prints 1.234e3
    print format_pref(-0.035);  # prints -35m
    unformat_pref('1.23T');     # returns 1.23e+12

DESCRIPTION ^

Format a number for printing using engineering notation. Engineering notation is similar to scientific notation except that the power of ten must be a multiple of three. Alternately, the number can be formatted using an International System of Units (SI) prefix representing a factor of a thousand.

SUBROUTINES ^

format_eng($number)

Format a numeric value using engineering notation. This function returns a string whose exponent is a multiple of 3. Here are some examples:

    format_eng(1234);   # returns 1.234e3
    format_eng(-0.03);  # returns -30e-3
    format_eng(7.8e7);  # returns 78e6

In most cases, the precision is preserved. However, rounding will occur if the number of digits is too large (system-dependent). Keep this in mind if $number is a numeric expression. For example, the following may return a different number of digits from system to system:

    format_eng(1/3);
format_pref($number)

Format a numeric value using engineering notation. This function returns a string using one of the following SI prefixes (representing a power of a thousand):

    m u n p f a z y
    k M G T P E Z Y

Notice that lower-case u is used instead of the Greek letter Mu.

If the number is beyond the prefix ranges (y and Y), then format_pref returns the same formatted string as format_eng. In other words, it does not use an SI prefix.

Here are some examples:

    format_pref(1234);      # returns 1.234k
    format_pref(-0.0004);   # returns -400u
    format_pref(1.27e13);   # returns 12.7G
    format_pref(7.5e60);    # returns 7.5e60
unformat_pref($string)

Convert a string formatted using format_pref into a numeric value. Here are some examples:

    unformat_pref('1.23T'); # returns 1.23e+12
    unformat_pref('-400u'); # returns -4e-4
    unformat_pref(37.5);    # returns 37.5
use_e_zero() and no_e_zero()

By default, if the exponent is zero, e0 is not displayed by format_eng. To explicitly display e0, use the use_e_zero method. Use the no_e_zero method to return to the default behavior.

    format_eng(55);     # returns 55
    Number::FormatEng::use_e_zero();
    format_eng(55);     # now returns 55e0
    Number::FormatEng::no_e_zero();
    format_eng(55);     # back to 55

EXPORT ^

Nothing is exported by default. Functions may be exported individually, or all functions may be exported at once, using the special tag :all.

DIAGNOSTICS ^

Error conditions cause the program to die using croak from the Carp.pm Core module.

BUGS AND LIMITATIONS ^

There are no known bugs in this module.

SEE ALSO ^

Refer to the following website:

http://en.wikipedia.org/wiki/Engineering_notation

AUTHOR ^

Gene Sullivan (gsullivan@cpan.org)

ACKNOWLEDGEMENTS ^

Influenced by the following PerlMonks: BrowserUk, GrandFather and repellent.

COPYRIGHT AND LICENSE ^

Copyright (c) 2009 Gene Sullivan. All rights reserved.

This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See perlartistic.

syntax highlighting: