No.1
- 回答日時:
use bignum;
パラメータ等はperldoc bignum で。
携帯端末からなのでとりあえずこれだけ。
ただ、好きなだけ精度をあげられる代わりに遅いです。
この回答への補足
ありがとうございます。
よろしければもう一点確認させて下さい。
"use bignum"を宣言した状態で、三角関数演算(sin)を使用すると
エラーストップしてしまいます。
コード:
use bignum;
sin(2);
エラーメッセージ:
"Operation 'sin':no method found, argument in overloaded package Math::BigInt at test.pl line 2"
"use bignum"を使わなければ、このエラーメッセージは発生しません。
use Math::BigInt記述していてもいなくても結果は変わりません。
bignumを使いつつ(有効桁数を上げつつ)、三角関数を計算できる方法
がありましたら教えて頂けないでしょうか。
よろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
perl -MMath::BigFloat -e "print $Math::BigFloat::VERSION"
をコマンドラインから実行してみてそのバージョンが1.58(現時点での最新)
かどうかを確認し、最新であれば
>perl -MMath::BigFloat -e "print $Math::BigFloat::VERSION"
1.58
perl -MMath::BigFloat -e "my $x = Math::BigFloat->new(2); print $x->bsin(100);"
0.909297426825681695396019865911744842702254971447890268378973011530967301540783
5446201266889249593803
のように、Math::BigFloatクラスのメソッドが使えます。
最新のものでなければ、Windows 以外のOSなら cpan コマンドを、WindowsでActivePerlを使っているなら、
ppm コマンドを使って最新のものに更新してください。
このとき指定するのは Math::BigIntモジュールなのに注意してください。
>ppm-shell
ppm 4.01
Copyright (C) 2007 ActiveState Software Inc. All rights reserved.
ppm> search math-bigint
1: Math-BigInt v1.64
2: Math-BigInt v1.87
3: Math-BigInt v1.79
4: Math-BigInt-BitVect v1.11
5: Math-BigInt-Constant v1.04
6: Math-BigInt-FastCalc v0.15
7: Math-BigInt-FastCalc v0.10
8: Math-BigInt-GMP v1.24
9: Math-BigInt-GMP v1.19
10: Math-BigInt-Named v0.03
11: Math-BigInt-Pari v1.13
12: Math-BigInt-Random v0.03
13: Math-BigIntFast v6.0
ppm> install 2
Downloading Math-BigInt-1.87...done
Downloading Test-Simple-0.70...done
Unpacking Math-BigInt-1.87...done
Unpacking Test-Simple-0.70...done
Generating HTML for Math-BigInt-1.87...done
Generating HTML for Test-Simple-0.70...done
Updating files in site area...done
10 files installed
6 files updated
ppm> quit
No.3
- 回答日時:
どなたも回答されていないようなので・・・・。
Perlで有効桁数を上げて計算をするには、BigIntやBigFloatを使用します。
Zeal250さんが整数の演算を行いたいのか浮動小数点の演算で有効桁数を上げたいのかはわかりませんが、例として、整数演算の有効桁数を上げたいとすると、下記のようになります。
use Math::BigInt;
$big = Math::BigInt->new("1.23456789e+200");
$big *= $big;
print $big;
なお、お使いのPerlのバージョンが5.8であれば、
use biginit;
$big = 1.23456789e+200;
$big *= $big;
print $big;
としても、計算ができます。
Perl5.8以降では、Math::BigIntモジュールのラッパーがbiginitモジュールとして実装されているようです。
お試しください。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
PPMが起動しない
-
Perlの数値計算で有効桁数を上...
-
Vistaでは ppm install で接続...
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
Excel VBAで、ユーザーフォーム...
-
erf(x)とerfc(x)のカタカナ読み...
-
これはパワハラになりますか?
-
vba 標準モジュールインポート...
-
シャープ製品JH-WB1821 と BCG...
-
Excel VBA 『Call』で呼び出す...
-
パワーポイントでマクロ(Auto_C...
-
ユーザー定義関数に#NAME?が返...
-
Access VBA標準モジュールにつ...
-
エクセルVBA クラスモジュール...
-
Excel VBA 定義されたプロージ...
-
グラフのX,Y座標を取得したい
-
VBSがコンパイルエラーになりま...
-
Form間の値の渡し方
-
Perlのライセンス
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ActivePerl付属のPPMでモジュー...
-
ppmを使ってのモジュールのイン...
-
Perlの数値計算で有効桁数を上...
-
ppmのリポジトリの場所
-
有機化学の問題
-
DBD::mysql インストールについて
-
PPMが起動しない
-
初心者です・・ppmを入力すると...
-
ppmをタイプするとエラーになる
-
ppm
-
Vistaでは ppm install で接続...
-
perlのリポジトリ
-
例外処理のフローチャートの記...
-
Excel VBAでリンク切れをチェッ...
-
LCD ディスプレイを Raspberry ...
-
「デバイスは PRN を初期化でき...
-
エクセルVBAでシートモジュール...
-
VBSがコンパイルエラーになりま...
-
VBでグローバル変数を宣言するには
-
Excel VBAで、ユーザーフォーム...
おすすめ情報