1
1
知りたいこと
C++で扱える一番大きな数値について
C++でとても大きな数を扱うにはどうすればいいでしょうか...?
僕が知っているのは unsigned __int64 という型なのですが、それ以上に大きな数を知りません。
背景、状況
円周率を計算していくプログラムを作りたかったのですが、どうしても桁数に制限があるため
完璧にすることができません。そこでそこそこ大きい数を生成する為にどうすればいいかを募集してみました。
制約
- 正の数である (自然数、正の浮動小数点かは問いません)
- C++で扱える
特にツールなどの制限は問いませんので、ご意見よろしくお願いします!
追記:試したこと
「調査したこと・試したことが記載されていない質問」とご指摘を受けました。ありがとうございます。
- 数値を文字列として扱う
c++
1#include <iostream> 2#include <vector> 3using namespace std; 4 5int main(void) { 6 string n = "1234789452315541318781321897897451354894865132189485616579845646546515649845848915618948691891978943216549846135486748465"; 7 cout << n << endl; 8 return 0; 9}
この方法は無理矢理なうえに、計算アルゴリズムが大変な事になるので止めました。
- unsigned __int64を複数使用する方法
c++
1#include <iostream> 2#include <vector> 3using namespace std; 4 5int main(void) { 6 __int64 x = 12345678987654321; 7 __int64 y = 1234567890; 8 9 // 123456789876543211234567890 10 cout << x << y << endl; 11 return 0; 12}
この方法がいいと思ったのですが、円周率を計算するプログラムなので扱いにくいので断念。
初心者ですみませんが、改めてご意見お願いします。
回答4件
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。