人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

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

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

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

●質問者: tpichu
●カテゴリ:コンピュータ 生活
✍キーワード:e+ MinGW Perl Windows WinXP
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● くまっぷす
●50ポイント

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

http://www.rakunet.org/TSNET/TSfree/7/212.html

TSfree 発言

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

◎質問者からの返答

参考にしてみます。

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

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


2 ● RIKKUN
●5ポイント

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

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

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


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

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

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ