作者xu3jp68 (信箱爆炸..XD)
看板Visual_Basic
標題[VB6 ] 迴圈問題
時間Mon Feb 25 21:24:43 2008
dim t as double
Private Sub Form_Load()
For t = 0.8 To 1 Step 0.1
Print t (問題二改成Print a())
Next t
End Sub
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
上面這個程式,為什麼他只會顯示0.8,0.9而沒有顯示1。
但是當範圍是0.7~1就全部都會顯示。
問題二:如果我再加一個function。
Function a()
If t = 0.8 Then
a = 1
ElseIf t = 0.9 Then
a = 2
ElseIf t = 1 Then
a = 3
End If
End Function
主程式同問題一,但內容改成為呼叫此函數,則當宣告t為double
則會顯示a=1,a=2。而t宣告成single就只有顯示a=1=而已。
我的目的是藉由t值得到a
沒想到產生這些問題,新手發問麻煩各位了。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.114.53.85
※ 編輯: xu3jp68 來自: 140.114.53.85 (02/25 21:25)
推 hrs113355:浮點數誤差。 02/26 15:17
推 yaiba:0.8+0.1+0.1 <> 1 因為...0.1有可能是0.1000000000000000001 02/28 12:00
→ yaiba:如果你想用的只有0.8 0.9.....那不如用 100 90 80 70 再去除 02/28 12:01
推 albb0920:用double就好啦 (心) 02/29 07:36