-
04-05-2009, 02:42 AM #1Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Kết quả tính toán sai ở chỗ nào? (Vui vui)
nhờ các bác chỉ dùm lỗi trong Function này(hoặc cách test) hộ em với:
Function TrungBinhCong(ByVal so1, ByVal so2, ByVal so3)
TrungBinhCong = (so1 + so2 + so3)/ 3
End Function
Để test cái Function trên em dùng:
Sub TrungBinh()
Dim so1, so2, so3 As Integer
Dim Tong As integer
so1 = InputBox("nhập số thứ nhất: ")
so2 = InputBox("Nhập số thứ hai: ")
so3 = InputBox("Nhập số thứ ba: ")
Tong = so1 + so2 + so3
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng là: " & Tong
MsgBox "Trung bình cộng các số: " & TrungBinhCong(so1, so2, so3)
End Sub
các bác thử chạy hộ cái Sub trên xem, tại sao lại không ra kết quả mong muốn??. Ví dụ, khi ta nhập so1=20; so2=30; so3=40 thì kết quả được sẽ là:Tổng cộng 2070; Trung bình cộng 690 ?????:k5211829:View more random threads:
- Cách kết hợp VBA với access
- File minh họa việc kết nối đến dữ liệu SQL Server từ MS. Access
- Cho mình hỏi về Marco chút.
- Anh em cho em xin cơ sở dữ liệu của một chương trình kế toán kho với!
- Hai khúc mắc trong VBA
- Làm sao để tính số lượng sách của 1 mã sách còn lại trong thư viện. ac ơi..giúp e với
- Vô hiệu hóa nút Close của ứng dụng Access
- Giúp em làm VBA Access bằng form đăng ký
- Giúp đở về listbox và textbox . help !
- Dữ liệu không cập nhật kịp thời khi In report
-
04-05-2009, 02:59 AM #2Junior Member
- Ngày tham gia
- Dec 2015
- Bài viết
- 0
Gửi bởi khanhminh06
Sửa lại chút:
Sub TrungBinh()
Dim so1, so2, so3
Dim Tong As Long
so1 = InputBox("nhập số thứ nhất: ")
so2 = InputBox("Nhập số thứ hai: ")
so3 = InputBox("Nhập số thứ ba: ")
Tong = CInt(so1) + CInt(so2) + CInt(so3)
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng là: " & Tong
MsgBox "Trung bình cộng các số: " & TrungBinhCong(CInt(so1), CInt(so2), CInt(so3))
End Sub
Ghi chú: không cần test, chỉ cần coi lôgic là biết nó bị chỗ nào rồi.
-
04-05-2009, 02:59 AM #3Silver member
- Ngày tham gia
- Mar 2016
- Bài viết
- 15
Gửi bởi khanhminh06
nếu cái Function sửa thành:
[I]Function TrungBinhCong(Byval so1, ByVal so2, ByVal so3)
so1=so1+0
TrungBinhCong:k6233143:
Ngược lại nếu ta sửa cái "Sub" lại thế này và test thì OK:
Sub TrungBinh()
Dim so1, so2, so3 As Integer
Dim Tong As Double
so1 = InputBox("Nhập số thứ nhất: ") 'ở đây vẫn nhập giá trị so1=20
so2 = 30
so3 = 40
Tong = so1 + so2 + so3
MsgBox "Số thứ nhất là:" & so1
MsgBox "Số thứ hai là:" & so2
MsgBox "Số thứ ba là:" & so3
MsgBox "Tổng cộng: " & Tong 'kết quả được Tổng = 90
MsgBox "Trung bình cộng: " & TrungBinhCong(so1, so2, so3) 'Kết quả Trung bình là 30
End Sub
Tại sao nhỉ? khó hiểu quá!!!
-----------------------------------------------------------------------------------------
xin bác chỉ dzùm em với?
-----------------------------------------------------------------------------------------
Gửi bởi phatnq2002
-
04-05-2009, 03:07 AM #4Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Kết quả tính toán sai ở chỗ nào? (Vui vui)
Nhìn chung, bạn gặp phải trường hợp:
- Khai báo biến không tường minh: Trong tình huống này biến sẽ có kiểu là Variant. Khi tính toán, kiểu sẽ được thay đổi theo hướng được cho là thích hợp nhất. Đây là thói quen "xấu" của lập trình viên. Bạnne6n khai báo biến theo kiểu tường minh, vừa dễ kiểm soát, vừa biết giá trị trả về là gì.
- Khai báo không hợp kiểu: Biến kiểu kết quả thường có kiểu "cao" hơn các thành tố. Trong trường hợp bất khả kháng thì phải ép kiểu với: CInt, CLng, CDbl, CStr, ...
-
04-05-2009, 04:34 AM #5Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 7
Ðề: Kết quả tính toán sai ở chỗ nào? (Vui vui)
Cảm ơn bác em đã hiểu rồi!
Khi nói đến việc xin visa du lịch, công tác, thăm thân, lao động, định cư hay du học sang một quốc gia nào đó, quy trình thường mất khá nhiều thời gian và công sức. Để đơn giản hóa quy trình này và...
Dulichviet – Công ty được Nhật ủy thác làm Visa Nhật tại TPHCM