Location : Home > Languages > Perl > Package
Title : Convert::SciEng
Toolbox Logo

名称

 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

Conversion

注意:
 本モジュールを確認すれば他の科学技術記法を追加する方法は容易にわかるだろう。もし他に有用な機能があれば私にメールして追加してほしい。


診断

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 にも謝意を表明する。


[注釈]

  1. SI は国際単位系のこと。1,000を k(kilo;キロ)、1,000,000 を M (Mega;メガ)と示す10のべき乗の表記を数値に変換するのがこのモジュールの基本機能。
  2. Fix は、理系の人ならわかると思うけど、数値 A.B × 10C を A.BeC と表記する方法。
  3. えー。知らない人が多いんだけど、コンピュータの世界で 1kB(キロバイト)と言えば 1,000 byte ではなくて 210 byte=1,024 byte のこと。
  4. SPICE というのは、電子回路シミュレータの名前。そのソフトでは大文字と小文字を区別しないため、m(ミリ)とM(メガ)が区別をつけられないなどの問題で、いくつか別の文字を割り当てている場合がある。これに対応したもの(だと思う)。
  5. 謝辞に出てくる Steven McDougall 氏のサイトは再編成されていて、Perl に関する情報は http://world.std.com/~swmcd/steven/perl/ で見ることができる。
  6. 謝辞に出てくる Tom Christiansen 氏の perltoot podpage とは、おそらく http://perldoc.perl.org/perltoot.html のこと。これは Perldoc.jp で翻訳されていて、 http://perldoc.jp/docs/perl/5.8.0/perltoot.pod で読むことができる。
Toolbox Logo
Updated : 2006/10/04