scieng(3)
NAME
Convert::SciEng - Convert 'numbers' with scientific post
fixes
SYNOPSIS
#!/usr/local/bin/perl -w
use strict;
use Convert::SciEng
my $c = Convert::SciEng->new('spice');
my $s = Convert::SciEng->new('si');
print "Scalar0;
print $c->unfix('2.34u'), "0;
print "Array0;
print join "0, $c->unfix(qw( 30.6k 10x 0.03456m 123n
45o)), "0;
##Note, default format is 5.5g
print "Default format is %5.5g0;
print join "0, $c->fix(qw( 35e5 0.123e-4 200e3 )), "";
$c->format('%8.2f');
print "Change the format is %8.2g0;
print join "0, $c->fix(qw( 35e5 0.123e-4 200e3 )), "";
print "Check out the SI conversion0;
print join "0, $s->unfix(qw( 30.6K 10M 0.03456m 123n
45o)), "";
REQUIRES
perl5.004_04 or greater, Carp
I'm sorry if you get bit by the 5.004_04 but I believe in
the Cathedral model. Keep current or suffer the penal
ties.
DESCRIPTION
- Convert::SciEng supplies an object for converting numbers
to and from scientific notation with user-defined format
ting. Two different styles of fix are supported, standard
SI and SPICE: - SPICE = P T g x k '' m u n p
- f a
SI = P T G M K '' m u n p - f a
Fix = 1e15 1e12 1e9 1e6 1e3 1e0 1e-3 1e-6 1e-9 1e-12 - 1e-15 1e-18
- Methods are supplied for creating the object and defining
which fix style it will use, and defining for format of
numbers as they are converted to scientific notation.
METHODS
Creation
- Convert::SciEng->new('style');
- Creates and returns a new Number::SI object of the
appropiate style, either 'si' or 'spice'. The styles
aren't case sensitive - $fix->format(FORMAT);
- Sets the format of number converter TO fix to be "FOR
MAT". FORMAT is any valid format to sprintf, like
'%5.5g' or '%6.4e'. The default format is '%5.5g'. - Conversion
- $fix->fix(0.030405); # 30.405m
- Convert a number to scientific notation with fixes.
Returns a string in the format given to it with the
fix appended to the end. Also works with arrays, with
an array of strings being returned. - $fix->unfix('12u'); # 12e-06
- Convert a string from scientific notation. Returns a
number in exponential format. Also works with arrays,
with an array of numbers being returned. - Note, by examining the module it should be relatively easy
to figure out how to create an object for any other scien
tific notation abbreviations. If you think it is some
thing that might be useful to others, then email me and
I'll add it to the module.
DIAGNOSTICS
- Unrecognized mode: MODE
- (F) Generated when you try specify an illegal mode
like so:
$a = Convert::SciEng->new('foo'); - Illegal printf format: FORMAT
(F) An illegal format was specified. Valid formats
must match the following regexp:"/^+(.+)?([scduxoefg]|l[duxo])$/"
AUTHOR
Colin Kuskie, colink@latticesemi.com
KUDOS
Many thanks to Steven McDougall for his comments about the
content and style of my module and for sending me his tem
plates for module creation. They can be found at:
http://world.std.com/~swmcd/steven/Perl/index.html
and I highly recommend them for beginning module writers.
- Also thanks to Tom Christiansen for the perltoot podpage.