運(yùn)行一下代碼Private Sub Command1_Click()Dim n As Singlen = 0For s = 1 To 50n = n + 0.1Next sPrint nEnd Sub輸出n的結(jié)果竟然是 4.999998 ,不是5才正確嗎還有這個(gè)Private Sub Command1_Click()Dim s, x, y As Singlex = 0.1y = 0.1s = x + yPrint sEnd Sub輸出的結(jié)果是.200000001490116 ,為什么后面會(huì)...?但是我把它改成Private Sub Command1_Click()Dim x, y, s As Singlex = 0.1y = 0.1s = x + yText1.Text = sEnd Sub就正常了。是什么原因??
2 回答

躍然一笑
TA貢獻(xiàn)1826條經(jīng)驗(yàn) 獲得超6個(gè)贊
不必糾結(jié)這些小問(wèn)題,只要知道計(jì)算機(jī)里的浮點(diǎn)數(shù)都是用整數(shù)弄出來(lái)的就OK了。就像沒(méi)有精確的3^(0.5)一樣。通常使用的時(shí)候,考慮精度問(wèn)題的話會(huì)自己進(jìn)行控制,比如使用double,或者ground去調(diào)節(jié)精度。

白衣非少年
TA貢獻(xiàn)1155條經(jīng)驗(yàn) 獲得超0個(gè)贊
浮點(diǎn)數(shù)的精度不要斤斤計(jì)較,如果想保持精度,使用ROUND函數(shù)控制即可。
例如:
Print Round(s,2)這樣結(jié)果就是.02
添加回答
舉報(bào)
0/150
提交
取消