プログラム中(VBscript)で、データベースから、商品データ(数値)を取り出して、過去のデータから現在のデータまでをどんどん値を引いていって、その経過を表示する、という引き算を繰り返す作業を行っているのですが、途中でバグが出てしまいます。
実際に取り出される数値としては、整数もしくは小数点以下第一位までの数値です。
どのようなバグが発生するかといいますと、たとえば、数値「5.6」から数値「2.4」を引いたら、表示が、「3.1999999999」などと表示されてしまうのです。
どのようにすれば解決されるのでしょうか。
初心者なので的外れな質問かもしれませんが、ご回答よろしくお願いします。
No.1ベストアンサー
- 回答日時:
表示だけの問題でしたら、最終表示の時に
Dim Disp as String
Dim Disp_data as Double
Disp_Data = 3.1999999999
Disp = Format( Disp_Data, "#,##0.00")
で、Dispを表示させれば直ります。
途中の計算結果も合わせるということであれば、
Dim Disp as String
Dim Disp_data as Double
Disp_Data = 3.1999999999
Disp = Format( Disp_Data, "#,##0.0")
Data_Arry(i) = val(Disp)
とすれば大丈夫なはずです。
これに四捨五入がからむと、ちょっとややこしくなりますが、数値化けでしたらこれで大丈夫なはずです。
うまくモデファイしてお使いください。
No.2
- 回答日時:
2進数表記にした時に循環小数になるような数値があると、単純な足
し算や引き算でも誤差が生じます。「丸め誤差」で検索してみると解
説が見つかりますので参照して下さい。
で、最大でも小数点以下1桁までと決まっているのなら、いったん10
倍して整数として演算してから元に戻すようにすれば回避できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
ActiveReportのサブレポート機...
-
excel access連携 このテーブル...
-
Oracleでページ単位にレコード...
-
GridViewからチェックボックス...
-
VB 音の波形を取得する関数は?
-
「○件リスト表示&次のページへ...
-
TCPでデータを受け取ってそれを...
-
「取得先」という表現について
-
VBA コレクションに2次元配列...
-
findstrのerrorlevel
-
switch()文で値の大小比較
-
shシェルスクリプト 空白行の...
-
htmlspecialcharsの挙動について
-
【PHP】SESSION変数の競合を...
-
PHPプログラム上で「URLを直接...
-
開始と終了を指定して、その間...
-
Dosブロンプトでtabを出力したい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DTOとEntityの差は何ですか。
-
wordの差し込み印刷で文字...
-
【C#】DataGridViewの最大列数...
-
excel access連携 このテーブル...
-
WordでExcelデータを差込...
-
GridViewからチェックボックス...
-
INIファイルに一括書き込みを行...
-
表を表示するコントロールについて
-
ActiveReportのサブレポート機...
-
VBA内でのGetPixelを使用した時...
-
MSFlexGridのデータを初期化し...
-
C言語で地図を描きたい
-
VB6でDBからクリップボード経由...
-
JavaからPHPへの値の受け渡し
-
VB.NET 2017の勉強中です。 今...
-
ASP.NET GridView の検索画面で...
-
西暦4桁に変換する方法
-
Windowsのマクロプログラムで、...
-
Strutsで画面に表示した値の再...
-
PHP+SmartyとAjax
おすすめ情報