作者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)
1F:推 hrs113355:浮点数误差。 02/26 15:17
2F:推 yaiba:0.8+0.1+0.1 <> 1 因为...0.1有可能是0.1000000000000000001 02/28 12:00
3F:→ yaiba:如果你想用的只有0.8 0.9.....那不如用 100 90 80 70 再去除 02/28 12:01
4F:推 albb0920:用double就好啦 (心) 02/29 07:36