|
Convert::SciEng - Convert 'numbers' with scientific postfixes |
Convert::SciEng - Convert 'numbers' with scientific postfixes
#!/usr/local/bin/perl -w
use strict; use Convert::SciEng
my $c = Convert::SciEng->new('spice');
my $s = Convert::SciEng->new('si');
print "Scalar\n";
print $c->unfix('2.34u'), "\n\n";
print "Array\n"; print join "\n", $c->unfix(qw( 30.6k 10x 0.03456m 123n 45o)), "\n";
##Note, default format is 5.5g
print "Default format is %5.5g\n";
print join "\n", $c->fix(qw( 35e5 0.123e-4 200e3 )), "";
$c->format('%8.2f');
print "Change the format is %8.2g\n";
print join "\n", $c->fix(qw( 35e5 0.123e-4 200e3 )), "";
print "Check out the SI conversion\n"; print join "\n", $s->unfix(qw( 30.6K 10M 0.03456m 123n 45o)), "";
perl5.004_04 or greater, Carp
Convert::SciEng supplies an object for converting numbers to and from scientific notation with user-defined formatting. Three different styles of fix are supported, standard CS, 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
CS = P T G M K '' Fix = 2^50 2^40 2^30 2^20 2^10 2^0
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.
'cs' or 'si' or 'spice'. The styles aren't case sensitive
FORMAT.
FORMAT is any valid format to sprintf, like '%5.5g' or '%6.4e'.
The default format is '%5.5g'.
Note, by examining the module it should be relatively easy to figure out how to create an object for any other scientific notation abbreviations. If you think it is something that might be useful to others, then email me and I'll add it to the module.
$a = Convert::SciEng->new('foo');
/^\%\d+(\.\d+)?([scduxoefg]|l[duxo])$/
Colin Kuskie, ckuskie@cpan.org
Many thanks to Steven McDougall for his comments about the content and style of my module and for sending me his templates 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.
|
Convert::SciEng - Convert 'numbers' with scientific postfixes |