有効桁 – プログラミング – Home

通知
すべてクリア

有効桁


佐智
 佐智
(@佐智)
ゲスト
結合: 19年前
投稿: 1
Topic starter  

私はC++初心者で、最近ようやく出力結果の桁数が多いと誤差がでることを知りました。
しかし計算結果の数字が何処まで有効であるかが分かりません。
型によっても変わるのだと思いますが、有効桁数を調べる方法はありますか。
また、計算結果の信頼性を調べるにはどのような方法をとればよいでしょうか。

よろしければ教えて下さい(>_<)お願いします。


引用解決済
トピックタグ
KING・王
 KING・王
(@KING・王)
ゲスト
結合: 20年前
投稿: 122
 

> 私はC++初心者で、最近ようやく出力結果の桁数が多いと誤差がでることを知りまし
た。
> しかし計算結果の数字が何処まで有効であるかが分かりません。

おそらく浮動小数点のことだと思いますので、「浮動小数点」をキーワードに
Googleで調べてみるといろいろとでてくると思います。

例えばWikiなど
http://ja.wikipedia.org/wiki/%E6%B5%AE%E5%8B%95%E5%B0%8F%E6%95%B0%E7%82%B9%E6%
95%B0>

で、計算結果というよりも、小数を扱った時点で、誤差が生じます。
0.1でも誤差があり、厳密には0.1に10をかけても1.0にはなりませんので。

#少し、自信がない部分もありますので、識者の方々フォローをお願いします。


返信引用
通りすがり
 通りすがり
(@通りすがり)
ゲスト
結合: 24年前
投稿: 92
 

2進数で小数を表現するとどうなるか考えてみるとよろしい


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

用途は何ですか。
たんに計算をして状況を掴むだけなら「浮動小数点」で十分だと思います。
計算結果を利用して判定等を行う時は、「浮動小数点」の誤差が問題になると
思います。
対策として、
 1. 必要小数点分をかけて一度整数にします。
 2. 再び必要小数点分で割って浮動小数点に戻します。


 2桁の場合
  100をかけて、100で割ります。

それでも駄目な場合、固定小数点を利用します。
.netとVBが対応しています。
MFCは、専用関数で行っているみたいです。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました