Location : Home > Languages > Perl > Package Title : Convert::SciEng |
![]() |
Convert::SciEng - 技術計算の略語を換算
#!/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"; ## 注:デフォルトのフォーマットは 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 はユーザが定義した科学技術記法を数字に変換する機能を提供する。standard CS, SI, SPICE の3つの記法をサポートしている。
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
オブジェクトを生成しそれに用いる固定小数点表示を定義するメソッド及び数値のフォーマットを定義しそれを科学技術記法に変換するメソッドも提供されている。
Creation
適切な style(cs または si または spice)の新しい Number::SI オブジェクトを生成し返す。これらは大文字/小文字を区別しない。
fix のフォーマットを FORMAT に設定する。
FORMAT は sprintf に渡すことができるフォーマット、例えば '%5.5g' や '%6.4e' などであればよい。デフォルトのフォーマットは '%5.5g' である。
Conversion
数値を fix を使って科学技術記法に変換。最後に補助単位を追加して指定された形式にした文字列を返す。配列を与えられた場合は配列を返す。
科学技術記法を文字列に変換。指数表記にして返す。配列を与えられた場合は配列を返す。
注意:
本モジュールを確認すれば他の科学技術記法を追加する方法は容易にわかるだろう。もし他に有用な機能があれば私にメールして追加してほしい。
Unrecognized mode: MODE
正しくないモードであることを確認するには以下のようにするとよい。
$a = Convert::SciEng->new('foo');
Illegal printf format: FORMAT
正しくないフォーマットが特定されたら妥当なフォーマットは以下の regexp を実行するとよい。
/^\%\d+(\.\d+)?([scduxoefg]|l[duxo])$/
Colin Kuskie, ckuskie@cpan.org
私のモジュールの内容及び書式に対しコメントをくれ、モジュール作成のテンプレートを送付してくれた Steven McDougall 氏に謝意を表明する。これらは http://world.std.com/~swmcd/steven/Perl/index.html で入手できる。モジュール書き初心者にはお勧めである。
また Tom Christiansen の perltoot podpage にも謝意を表明する。
[注釈]
![]() |
Updated : 2006/10/04 |