[VB6 ] 迴圈問題

看板Visual_Basic作者 (信箱爆炸..XD)時間18年前 (2008/02/25 21:24), 編輯推噓3(301)
留言4則, 3人參與, 最新討論串3/3 (看更多)
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)

02/26 15:17, , 1F
浮點數誤差。
02/26 15:17, 1F

02/28 12:00, , 2F
0.8+0.1+0.1 <> 1 因為...0.1有可能是0.1000000000000000001
02/28 12:00, 2F

02/28 12:01, , 3F
如果你想用的只有0.8 0.9.....那不如用 100 90 80 70 再去除
02/28 12:01, 3F

02/29 07:36, , 4F
用double就好啦 (心)
02/29 07:36, 4F
文章代碼(AID): #17mi6URG (Visual_Basic)
討論串 (同標題文章)
文章代碼(AID): #17mi6URG (Visual_Basic)