【Perl 】初心者コーナーPart5

このエントリーをはてなブックマークに追加
106
>>8

原因を一言でいうと「Perlの内部では数値は文字列として格納されているわけではない」って事だな。
変数に型のある言語(Cなど)を扱っていれば理解しやすいし、教えやすいのだろうが
あいにくPerlオンリーな俺に分かりやすく詳しい説明は無理だ。スマソ。

だが「後学の為に知っておきたい」という意欲があるのならラクダ本でも買ってみたらどうだろうか。
浮動小数点数の精度については少ししか載っていないが、損はしないと思うぞ。

代わりといっちゃなんだが>>5の別の方法
>>6の他に標準モジュールのMath::BigFloatを使うという手がある。
これなら精度は無限だ。
#!/usr/bin/perl
use Math::BigFloat;

$a = Math::BigFloat->new(10.45);
$b = Math::BigFloat->new(9.55);
$c = Math::BigFloat->new('0.123456789');#小数点以下が長い場合は文字列としてnewに渡す

print $a - $b, "\n"; #".9"
print $a + $b + $c. "\n"; #"20.123456789"

__END__



>>7
ヘタレをおだてないでくれ(w;
コテハンはJapuさんや_gunzipさんくらいにならんとな・・・。