01/10/2018, 16:13

Kiểm tra một số float có phải là số nguyên hay không

Như tít ạ.

Bài tập của mình là xây dựng một hàm tính toán.

Nhưng vấn đề là thầy giáo bắt mở rộng cho cả số thực

Mà số thức thì không có phép toán lấy số dư ( % ấy)

Bây giờ mình muốn kiểm tra xem số nhập vào là nguyên hay thực thì làm sao ạ?

rogp10 viết 18:14 ngày 01/10/2018

Lấy x - (int) x thì ra phần lẻ của x.

Đặng Trung viết 18:14 ngày 01/10/2018

Đúng rồi vậy mà mình không nghĩ ra ^^!

name viết 18:20 ngày 01/10/2018

câu hỏi của bạn khá thú vị mình sẽ chỉ ra điều thú vị ở đây:

  1. làm sao để kiểm tra số nhập vào là số nguyên hay số thực
    ? muốn scan số thực thì phải %f
    ? muốn scan số nguyên thì %d
    như vậy bạn phải scan %f thì mới scan được số thực. và nếu có nhập số nguyên thì nó vẫn là số thực vì sao tập hợp R (số thực ) chứa tập hợp Z (số nguyên) vì vậy 1 số nguyên chắc chắn là số thực
HelloWorld viết 18:29 ngày 01/10/2018

Cách này không xác định được 1 số có kiểu int hay float
Ví dụ a=9.0
Có thể người dùng nhìn 9.0 = 9 = số int
Nhưng trên máy tính 9 int khác 9.0 float
Nếu 1 hàm nào đó chỉ tính toán dựa vào giá trị của biến thì không sao. Nhưng nếu tính toán còn dựa vào kiểu của biến thì fail

rogp10 viết 18:29 ngày 01/10/2018

Cách này không xác định được 1 số có kiểu int hay float

Tại thớt viết thế chứ làm sao mà kiểm tra được kiểu do mình đọc ra chứ C mà, runtime làm sao mà biết.

Chắc thớt sẽ dùng float để nhận luôn số nguyên rồi, giờ tách phần lẻ ra là biết ngay.

Đặng Trung viết 18:19 ngày 01/10/2018

cảm ơn các bạn.

Đề bài của mình là xây dựng máy tính toán cơ bản. Nhưng mà với phép tính % thì chỉ tính số nguyên cho nên nếu mình khai báo số thực ban đầu thì lại bị báo lỗi chỗ đó.

Nguyễn Đình Anh viết 18:20 ngày 01/10/2018

fload check = x - ( (int) x );

Nếu check = 0 thì là số nguyên, nếu khác 0 thì là số thực

Bài liên quan
0