Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


951 / 13645 ツリー ←次へ | 前へ→

【77330】int関数の戻り値が小さくなってしまいます OMG2015 15/7/22(水) 11:44 質問[未読]
【77333】Re:int関数の戻り値が小さくなってしまいま... γ 15/7/22(水) 21:41 発言[未読]

【77330】int関数の戻り値が小さくなってしまいます
質問  OMG2015  - 15/7/22(水) 11:44 -

引用なし
パスワード
   WindowsXP,7, Excel2010,2013です。
Excelシート上のセルの値(小数点以下1ケタ)の整数値を取得しようと
int関数を利用しましたが、
69.0→int(セルのvalue)→68 となってしまう現象が発生して、原因が
わからず困っています。

セルの値は別の3列の合計値です。データが多いので、シートをいったん
メモリ上に展開して、variantの配列をコード上で地味に足し算して
合計列用の配列(1列分)variantに格納し、合計列を張り付けています。
3列のセル値は、 26.4 40.8 1.8 です。合計列には69.0となります。
その後、int関数でセル値を処理すると68となってしまいます。
ちなみに、5.3 17.3 7.4 を足して合計30.0になった箇所はintしても30と
返ります。
問題の個所は、int以外にfixでも68となります。
転記前の型をdoubleの配列にしても同じです。
セルに直接69と入力して、int(セルのvalue)とすると、69となります。
原因と解決策を探しています。
Valueは同じだけれど、何か違う値が入っているのだと思いますが、
それを調べる手段もわかればいいのですが・・・

どうぞよろしくお願いします。。

【77333】Re:int関数の戻り値が小さくなってしまい...
発言  γ  - 15/7/22(水) 21:41 -

引用なし
パスワード
   いわゆる演算誤差の話ですね。
ht tp://pc.nikkeibp.co.jp/pc21/special/gosa/
↑に対応策も含めて書かれていますので、参照して下さい。

951 / 13645 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free