Hỏi cách kiểm tra số nguyên hoặc số thập phân

Liên hệ QC

TrungChinhs

Thành viên tích cực
Tham gia
18/2/08
Bài viết
1,475
Được thích
2,467
Nghề nghiệp
Công chức
Chào các bạn! Nhờ các bạn chỉ giúp mình công thức hoặc câu lệnh để kiểm tra số trong ô là nguyên hay số thập phân.
ví dụ: trong ô B5 dữ liệu có thể là 2,0 hoặc có thể là 1,75 nếu muốn biết số trong ô B5 là số nguyên hay số thập phân thì dùng hàm hoặc câu lệnh nào ? Xin cảm ơn!
 
Bạn cũng có thể dùng hàm QUOTIENT
=IF(QUOTIENT(B5,1)=B5, "số nguyên", "số thập phân")​
 
Upvote 0
@ BNTT máy của mình không có hàm QUOTIENT chỉ tìm thấy hàm QUARTILE
mình thử =IF(QUARTILE(B2,1)=B2, "số nguyên", "số thập phân") thì kết quả luôn luôn là số nguyên
 
Upvote 0
@ BNTT máy của mình không có hàm QUOTIENT chỉ tìm thấy hàm QUARTILE
mình thử =IF(QUARTILE(B2,1)=B2, "số nguyên", "số thập phân") thì kết quả luôn luôn là số nguyên
Hàm QUARTILE() là hàm dùng để tìm điểm tứ phân vị mà?

Nếu máy bạn không có hàm QUOTIENT(), là do máy bạn chưa cài Addin Analysis ToolPak.
Bạn vào trong Tools|Add-ins , cài nó vào (xem hình), là có hàm QUOTIENT ngay thôi.
000-117.gif
 
Upvote 0
Chào các bạn! Nhờ các bạn chỉ giúp mình công thức hoặc câu lệnh để kiểm tra số trong ô là nguyên hay số thập phân.
ví dụ: trong ô B5 dữ liệu có thể là 2,0 hoặc có thể là 1,75 nếu muốn biết số trong ô B5 là số nguyên hay số thập phân thì dùng hàm hoặc câu lệnh nào ? Xin cảm ơn!
=IF(B5-TRUNC(B5)=0,"Số nguyên","Số thập phân")
 
Upvote 0
Cảm thấy câu trả lời năm xưa vẫn chưa ứng ý thì lại thêm câu trả lời mới thôi à :)
Cách ở bài #6 không hẳn là cách thông dụng.
Thông thường thì chỉ cần INT (bỏ phần thập phân) và so sánh với trị ban đầu là đủ rồi.

Cách ở bài #6 là lấy từ kỹ thuật tính với sai số chấp nhận. Nhưng vì lấy mà không hiểu lý do nên thiếu sót một số con toán.
Ví dụ, tôi muốn số 5.0000001 coi như số nguyên. Dưới 1 phần triệu thì coi như sai số chấp nhận.
Test sẽ là:
ABS(so - TRUNC(so)) <= 10^-6
 
Upvote 0
PHP:
Function SoNguyen(Num As Variant) As Boolean
 SoNguyen = Num = Num \ 1
End Function
 
Upvote 0
PHP:
Function SoNguyen(Num As Variant) As Boolean
SoNguyen = Num = Num \ 1
End Function

Khi Num lớn hơn 2,2 tỷ sẽ bị lỗi
? songuyen(9000000000)
1619350254660.png

Lý do:
Cóp trang quép của Microsoft về toán tử \ :

1619350379000.png

Trước khi thực hiện con toán chia, VB sẽ cố chuyển mọi giá trị Float về kiểu Long. Nếu đầu module có Option Strict thì lỗi liền tại chỗ (lỗi trình dịch). Nếu Option Strict Off, lỗi tràn số có thể xảy ra nếu trị nằm ngopaif giới hạn của Long. ...

Kết luận:
Hàm tốn nhiều năng lượng (vì phải đổi kiểu, phải làm con toán chia), và bị nhiều giới hạn.

Chú thích:
Đối với lập trình, hàm FIX là hàm muôn thuở vẫn được dùng để chặt đuôi số thập phân. Đối với Excel, hàm FIX của VBA tương đương với TRUNC của bảng tính.
 
Upvote 0
Web KT
Back
Top Bottom