請教各位大大
例子如下
Dim a as integer, b as integer
b=0
a = b + 0.5
Print a
算出來b=0 則a=0
可是 a= b + 0.5 = 0 + 0.5 =0.5
不是超過 0.4 應該要進位成為 1
vb 算出來答案為 0 這是?
我試過用 b=1 , b=2 , b=3 ,b=4來帶入
b=1 則 a = 1+ 0.5 = 2 (1.5進位=2)
b=2 則 a = 2+ 0.5 = 2 (2.5怎沒進位=3 ???)
b=3 則 a = 3+ 0.5 = 4 (3.5進位=4)
b=4 則 a = 4+ 0.5 = 4 (4.5怎沒進位=5 ???)
2007-03-28 12:38:44 · 2 個解答 · 發問者 ramna 1 in 電腦與網際網路 ➔ 程式設計
'VB6的 Integer,Long型態,或CInt,CLng,Round等函數都是四捨六入五逢單才進位,如果真的要做四捨五入建議使用Format函數如:
Private Sub Command1_Click()
Dim A As Integer, B As Single, C As Single
C = 2.5
A = Format(C, "0") '四捨五入到整數
Print A
C = 2.65
B = Format(C, "0.0") '四捨五入到小數點1位
Print B
End Sub
2007-03-28 13:55:19 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋
1.為什麼以下程式結果不為1?→有人回答了,我來講下一題
Dim a as integer, b as integer
b=0
a = b + 0.5
Print a
2.我試過用 b=1 , b=2 , b=3 ,b=4來帶入
b=1 則 a = 1+ 0.5 = 2 (1.5進位=2)
b=2 則 a = 2+ 0.5 = 2 (2.5怎沒進位=3 ???)
b=3 則 a = 3+ 0.5 = 4 (3.5進位=4)
b=4 則 a = 4+ 0.5 = 4 (4.5怎沒進位=5 ???)
因為VB進位法是用"四捨六入五成雙"→小數點第一位>=5時,如果整數部分的個位數為奇數則會進位,如果為偶數則不會進位
建議你可以用這種簡易的方法:
Dim a as single,b as single
b=0
a=int(a+0.5)
Print a
試試看吧~~
2007-03-28 14:29:48 · answer #2 · answered by 天使 4 · 0⤊ 0⤋