【有力には100ポイント・片方のみなら50ポイント】Perlで2つ質問があります。


とても大きな数字を入力すると1e+025みたいな指数表記で表示されてしまいます。そうではなく10000000000000000000000000と普通に表記させたいです。
ただし、表記させた後の数値を計算させる可能性があります。

もうひとつは、Perlccについて。簡単に言うとWinXP HE SP2/ActivePerlの環境でPerlccが使えません。仕方がないので本家Perlより安定版ソースをダウンロードし、MinGW + dmakeでコンパイルを始めました。しかし、何度やっても途中でハングアップしてしまいます。
%TEMP%や%TMP%の環境変数はC:¥Windows¥tempになっています。

もし有力がなければキャンセルします。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:2005/07/31 11:58:22
  • 終了:--

回答(2件)

id:Kumappus No.1

くまっぷす回答回数3784ベストアンサー獲得回数1852005/07/17 12:06:43

ポイント50pt

http://perl.active-venture.com/lib/Math/BigInt-examples.html

Perl 5.8 Documentation - EXAMPLES use Math::BigInt;

http://bal4u.dip.jp/mt/program/archives/2005/02/xvzbigint.html

〜プログラム@Bal4u〜: 多倍精度計算 BigInt

モジュールMath::BigIntを使って、多倍長整数として扱えばよいと思います。

id:tpichu

参考にしてみます。

ちょっとヒントがわかりにくかったですがなんとかわかりました。

50ポイント差し上げると思います。

2005/07/17 13:15:41
id:RIKKUN No.2

RIKKUN回答回数51ベストアンサー獲得回数12005/07/18 00:27:12

ポイント5pt

http://www.oreilly.co.jp/books/4873110971/toc.html

oreilly.co.jp -- Online Catalog: プログラミングPerl 第3版 VOLUME 2

URLはラクダ本の紹介です。


標準モジュールの Math::BigInt もしくは

Math::BigFloat を使うのが一般的なようです。

どうやら内部的に一度文字列に格納してから

計算し直しているようなので、処理は遅いです。

ちなみに、演算子もオーバーライドされちゃうので、小さな数字の計算でもパフォーマンスが落ちるかもです。

id:tpichu

BigFloatでその問題は解決しています。

ごめんなさい。ポイントは少なめになります。

2005/08/02 12:15:17

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません