TimberLandChapelのTech Blog

TimberLandChapel が提供する技術Tips,思いつきメモ,雑感ブログです。
Office 互換リボン Release 1.0 をリリースしました。

購読

今期のアンケート

INETAJ

Microsoft

SQL Server

TLC.com

クリエイティブ・コモンズ

情報処理関係官公庁

【VB6.0 Tips】CDec という魔法のおまじない(3)
ちょっと長めの検証コードです。
IDEとコンパイル済みEXEで結果が異なる場合が出てきます。
Select文の評価も当然ゆれてきます。
コンパイルオプション(ネイティブ/P-CODE)の差でもゆれちゃいます。
乗算を優先したってゆれちゃいます。
とにもかくにもゆれまくりです。。。

Private Sub Test()
Dim dblWrka As Double
Dim dblWrkb As Double
Dim dblWrkc As Double
Dim dblWrk1 As Double
Dim dblWrk2 As Double
Dim Buff1 As String
Dim Buff2 As String
Dim Rslta As String
Dim Rsltb As String
Dim dbl165 As Double

Buff1 = "0012.0"
Buff2 = "0000033"

dblWrk1 = CDbl(Buff1)
dblWrk2 = CDbl(Buff2)
dbl165 = CDbl(1.65)

dblWrka = (CDbl(Buff1) * 1.65) / CDbl(Buff2) * 100
dblWrkb = (dblWrk1 * 1.65) / dblWrk2 * 100

' dblWrka = (CDbl(Buff1) * dbl165) / CDbl(Buff2) * 100

Select Case dblWrka
Case Is < 60
Rslta = "05"
Case Is < 70
Rslta = "06"
End Select

Select Case dblWrkb
Case Is < 60
Rslta = "05"
Case Is < 70
Rslta = "06"
End Select

MsgBox dblWrka & "," & Rslta & ":" & dblWrkb & "," & Rsltb

dblWrkc = dblWrkb - dblWrka
MsgBox dblWrkc

dblWrkc = dblWrk1 * 1.65 - CDbl(Buff1) * 1.65
MsgBox dblWrkc

End Sub
Published 2005年8月14日 22:47 投稿者 timberlandchapel

コメント

# 【TLC の Tech Blog 復刻版】VB6.0 で使う CDec という魔法のおまじない@ 2005年8月14日 22:53

旧ブログで3回にわたって書いた,小連載です。
VB6.0 で浮動小数点を扱う際の注意点というか,豆知識というか。
根本的な解決は図れないですけど,知っていて損は無い情報です。
■CDec という魔法のおまじない...