小数点以下最大で、8桁までを使う演算でdoubleの代わりにfloatを使うと

[戻る]
2005/07/17(日) 22:24:02
何か、問題があるでしょうか?
VC++6の使用です。

~ 2005/07/17(日) 22:27:24
> 何か、問題があるでしょうか?
誤差が発生します。
http://www.google.com/search?hl=ja&lr=lang_ja&ie=UTF-8&oe=UTF-8&q=float+%E8%AA%
A4%E5%B7%AE&num=50

まきじ [E-Mail] 2005/07/17(日) 22:40:23
double の精度は、約 15 桁で
float の精度は、約 6 桁です。

float で、小数点以下 7 桁以上の計算をする精度が落ちます。

まきじ [E-Mail] 2005/07/17(日) 23:05:35
>double の精度は、約 15 桁で
>float の精度は、約 6 桁です。

訂正、精度ではなく有効桁数ですね。

reshia [HomePage] 2005/07/18(月) 00:31:53
>double の精度は、約 15 桁で
>float の精度は、約 6 桁です。
でも、それってIEEE754とかの話ですか?
# float (32bit)なら1ビット符号+ 8ビット指数+23ビット仮数
# double(64bit)なら1ビット符号+11ビット指数+52ビット仮数

IEEE754じゃないときは、どうなんでしょう?
Visual C++なら必ずIEEE754になる・・?
CPUに依存するのでは?

wood 2005/07/18(月) 03:32:43
double でも少数以下 4桁くらいで問題は発生しますよ
reshia さんのご指摘通りIEEE に由来するものです
MSに聞いても解決作は、「自分で演算ライブラリを購入するか作ってください」
と言う回答しか帰って来ませんよ

Windowsに在る、電卓がライブラリとして利用できると良いんですけどね

まきじ [E-Mail] 2005/07/18(月) 19:19:54
>でも、それってIEEE754とかの話ですか?

IEEE754 のことです。

>IEEE754じゃないときは、どうなんでしょう?
>Visual C++なら必ずIEEE754になる・・?

正直、解りません(^^;

>CPUに依存するのでは?

はい、その様です。

2005/07/18(月) 19:30:49
[[解決]]
皆さん。
いろいろ教えていただきありがとうございます。
感謝します。

古いスレッドには追加発言できません。