No.1ベストアンサー
- 回答日時:
やったことはありませんが…
いわゆる「多倍長精度演算」でしょうか?
http://ja.wikipedia.org/wiki/%E4%BB%BB%E6%84%8F% …
.NET Framework 4.0以降であれば、そういう型も用意されている…ようです。
http://d.hatena.ne.jp/matsukawar/20120527/133809 …
早速のご回答、ありがとうございます。
私も、示していただいたようなクラス(型)は知りませんでした。
早速試してみたいと思います。
ありがとうございました。
No.5
- 回答日時:
はじめまして、通りすがると申します。
私も同じようなものを作ったことあります。私の場合は、自力でロジックを考えました。ただ、C#ではなくVB.NETにて作りました。
考え方は、数字を文字列として受け取り、それを4桁ずつ区切って、区切った文字をintegerにキャストすます。
キャストした数値は、内部的に加減乗算し、その結果を後で結合していく方式です。
結合時といっても、単純に結合するのではなく、4桁で桁あふれ等が起きた場合、左右隣の数値に1加える
か、減算するかを判断して結合していきます。加減のロジックができれば、乗算はそれらを利用して算定する
方式です。この方式はノートなどで手動で計算するようなイメージのロジックになると思います。
vb.netだと200~300ステップぐらいで作成した記憶があります。C#だともう少し多くのソースを必要とする
かもしれません。考え方は色々とあるとおもいますがこれも一つの例としてとらえてください。
ご回答、ありがとうございます。
思った以上にいろいろな方法があるので、正直驚きました。
電卓を作るといっても、敷き詰めていけばきりがなくなってしまいそうです。
ただ、考え方としては、通りさんの方法だと、少し凝った、面白いものも
作れそうです。
試行錯誤してみます。
ありがとうございました。
No.4
- 回答日時:
たびたびごめんなさい
少し余計なアドバイス、
別に、整数部小数部に分ける必要は特にないです→計算時は整数にして計算後に小数点の位置を後から割り出せばいいので
掛け算割り算は加(減)算(減算はマイナス値を加算するということ)にして計算する(掛け算は掛ける分加算する、割り算は何回引けるかカウントする)→コンピューター内部ではハード的には加算器しかないのですがそれを真似る
そろばんのイメージで設計すればいいと思います
ご回答、ありがとうございます。
なるほど、自作して実装というのもありましたね。
組み込みなんかである、『フルアダー』のことですね。
アクセサリの電卓程度でと思っていましたが、よくよく見てみると、
欲を張りすぎたと思いました。
参考にさせていただきます。
ありがとうございました。
No.3
- 回答日時:
有限の桁数ならあらかじめ整数部分と小数部分の各桁数分の配列をCHAR(1バイト)で用意してやって
一桁(あるいは2桁:BCDってやつ→昔のMSX-BASICなんかそうだったと思う)一変数で処理してやれば何桁でも好きなだけ設定できると思います
処理効率は悪いけど、除算以外での丸め誤差が出ないから、0.001を1万回足せばちゃんと10になるはず
No.2
- 回答日時:
ご回答、ありがとうございます。
まねをしたくて…というわけではありませんが、希望桁数は
windows付属の電卓と同じだけを望んでいます。
比較してみると、教えていただいたdecimal型でも
何とかなるのかもしれません。
試してみたいと思います。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 時計・電卓・電子辞書 関数電卓についての質問です 大学で食品について学んでいるのですが 学生実験で関数電卓が必要と言われま 7 2022/10/07 16:47
- 計算機科学 電卓で一度に計算するやり方 9 2022/06/11 14:06
- 数学 階乗や対数関係の数学の問題 4 2022/08/28 11:19
- 時計・電卓・電子辞書 電卓 4 2022/04/29 06:26
- 時計・電卓・電子辞書 電卓 5 2023/08/16 05:38
- Visual Basic(VBA) Vba コマンドボタンイベントの共通化 2 2022/05/27 19:01
- 夫婦 1、ジャージの裾あげについて質問です。 私は、ジャージやズボンを買うとき、お店に裾あげをお願いしてい 1 2023/02/06 15:34
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- 時計・電卓・電子辞書 電卓この関数電卓を使ってsin 14、2°を計算したいんですけど14、2の°の出し方がわかりません。 3 2023/07/26 13:44
- 数学 統計学の問題について教えて下さい。高校数学 大学数学 5 2023/03/07 09:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
O(n log n)について2
-
16進数 加算 減算 C言語
-
三菱シーケンサ(Aシリーズ)で...
-
ExcelでPC(パソコン)によって...
-
c languageで 簡単な質問があ...
-
VB.net Double と...
-
C言語でセルオートマトンを作成...
-
Log関数に関する質問
-
VBAでミリ秒まで出力する方法
-
距離から緯度経度を求める方法
-
乱数 なぜ剰余を使うのか
-
大きすぎる数値になるとE+にな...
-
色の判定
-
【C言語】RGBと輝度の計算に関して
-
100桁の計算ができなくて困って...
-
16進数とかわからないです
-
”/”を使わずに割り算したいんで...
-
データ型 double の桁数について
-
計算に誤差が出る?
-
【VBA、VBS】何故False・・・?
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
O(n log n)について2
-
16進数 加算 減算 C言語
-
c languageで 簡単な質問があ...
-
VB.net Double と...
-
”/”を使わずに割り算したいんで...
-
三菱シーケンサ(Aシリーズ)で...
-
ExcelのINT関数の計算結果がお...
-
有効数字について 以前質問をし...
-
ExcelでPC(パソコン)によって...
-
除算を使わずに10で割りたい。
-
EXCELの関数"STDEV(標準偏差)"...
-
floatの有効桁数
-
VBAでミリ秒まで出力する方法
-
100桁の計算ができなくて困って...
-
2進数の足し算(C言語)
-
VB6.0での小数点の扱いについて
-
VBAでの割り算の余りの求め方
-
コンピューターは指数関数をど...
-
距離から緯度経度を求める方法
-
BCD・HEX・BINについて
おすすめ情報