Double型で数値を取得する方法

返信する


答えを正確に入力してください。答えられるかどうかでスパムボットか否かを判定します。

BBCode: ON
[img]: ON
[url]: ON
スマイリー: OFF

トピックのレビュー
   

展開ビュー トピックのレビュー: Double型で数値を取得する方法

by konisi » 2006年5月16日(火) 20:26

正常な値が得られないのは、それが小数だからだと思います。
確か昔、これについて何かスレッドがあったような気がしたのですが、思い出せません。

小数を保存する時に2進数で保存するため、わずかな誤差が生まれるため計算が合わないように感じるものかと思います。

わずかな誤差が出る理由がわからない時は、1を7で割った値を有限桁の10進数では完全に保存する事が出来ない事を少し考えて見てください。

by » 2006年5月16日(火) 19:50

上の書き込みは私です。名前の入力忘れていました。

by ゲスト » 2006年5月16日(火) 19:11

15桁分計算できるとのことですが、0.000001 * 3 を計算させても、
正常な値が得られません。どうしてでしょうか。

by イグトランス » 2006年5月14日(日) 22:30

それは指数表記で,つまりとてつもなく0がとてつもなく沢山(308個前後)並ぶ数も表現できますが,
実際に計算などが行われるのは端から15桁分だけと言うことです。

実数は「m × (rのe乗)」という形へ変形できます。(たとえば123.456は1.23456 × (10の2乗)という具合です)
Double型は,mが15桁(原則1 ≦ m < 10),rを10としたらeは-307 ~ +308に収まる数を記憶できるような大きさなのです。

細かいことを言えば実際にはコンピュータですから二進法を使うので正確にはもう少し異なりますけどね。

by » 2006年5月14日(日) 21:43

何とか出来ました。ありがとうございます。
気になったのですが、Double型の範囲は、1.7E +/- 308 (15 桁)
とヘルプに書いてありますが、一体いくつのことなのでしょうか。

by » 2006年5月14日(日) 14:08

EditBox1に表示されている小数値やマイナス値も、
ご提示下さった方法で得られますか。

by hira » 2006年5月14日(日) 13:51

GetWindowText関数を使っていったん文字列でEditBox1の内容を取得し、それをVal関数の引数に指定すれば目的の数値が取得できるのではないでしょうか。

Double型で数値を取得する方法

by » 2006年5月14日(日) 13:46

電卓を製作中なのですが、EditBox1の数値をDouble型で取得する方法が
分かりません。どなたが教えていただけないでしょうか

ページトップ