Excel VBA質問箱 IV

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

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


14920 / 76734 ←次へ | 前へ→

【67300】Re:単純な計算がうまくできません。
発言  kanabun  - 10/11/22(月) 9:50 -

引用なし
パスワード
   ▼八家九僧陀 さん:

0.9という実数値を Single型の変数に代入したばあいと、
Double型の変数に代入して計算したばあいとでは
前者では【桁落ち】が生じやすいので、
0.9 が 0.900000000000  として計算されていない
ということです。

比較検証するプロシージャをつくってみましたので、
お試しください:

'--------------------------------- 標準モジュール
Sub 端数が出る理由_Single()
 
 Dim 年調給与額 As Long
 Dim ritu_1  As Single
 
 年調給与額 = Val("6835000")
 ritu_1 = 0.9
 
 Debug.Print
 Debug.Print 年調給与額; " * "; ritu_1;
 Debug.Print " <----"; TypeName(ritu_1); CDbl(ritu_1)
 Debug.Print 年調給与額 * ritu_1
 
End Sub

Sub 端数が出る理由_Double()
 
 Dim 年調給与額 As Long
 Dim ritu_1  As Double
 
 年調給与額 = Val("6835000")
 ritu_1 = 0.9
 
 Debug.Print
 Debug.Print 年調給与額; " * "; ritu_1;
 Debug.Print " <----"; TypeName(ritu_1); CDbl(ritu_1)
 Debug.Print 年調給与額 * ritu_1
 
End Sub

'------------------------ イミディエイト・ウィンドウ
6835000 * 0.9 <----Single 0.899999976158142
6151499.8370409

6835000 * 0.9 <----Double 0.9
6151500
2 hits

【67298】単純な計算がうまくできません。 八家九僧陀 10/11/21(日) 21:30 質問
【67299】Re:単純な計算がうまくできません。 kanabun 10/11/21(日) 21:34 発言
【67300】Re:単純な計算がうまくできません。 kanabun 10/11/22(月) 9:50 発言
【67301】Re:単純な計算がうまくできません。 kanabun 10/11/22(月) 10:15 発言
【67304】Re:単純な計算がうまくできません。 八家九僧陀 10/11/22(月) 19:18 お礼
【67303】Re:単純な計算がうまくできません。 ホグペン 10/11/22(月) 17:20 回答

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