×

Tách phần nguyên và phần thập phân của số với hàm modf() trong C

Việc tách phần nguyên và phần thập phân của một số thực là một thao tác phổ biến trong lập trình, đặc biệt trong các ngôn ngữ lập trình như C. Để thực hiện điều này, ngôn ngữ C cung cấp một hàm rất hữu ích là modf(). Hàm này thuộc thư viện toán học math.h và được sử dụng để phân chia một số thực thành hai phần: phần nguyên và phần thập phân.

Hàm modf() có cú pháp như sau:

#include <math.h>

double modf(double x, double *iptr);

Trong đó:

  • x là số thực cần tách phần nguyên và phần thập phân.
  • iptr là con trỏ tới biến kiểu double để lưu trữ phần nguyên của số.
  • Giá trị trả về của hàm là phần thập phân của số.

Dưới đây là một ví dụ minh họa cách sử dụng hàm modf() để tách phần nguyên và phần thập phân của một số thực.

#include <stdio.h>
#include <math.h>

int main() {
    double number = 23.45;
    double integer_part;
    double fraction_part;

    fraction_part = modf(number, &integer_part);

    printf("Original number: %.2f\n", number);
    printf("Integer part: %.0f\n", integer_part);
    printf("Fractional part: %.2f\n", fraction_part);

    return 0;
}

Trong đoạn mã trên:

  • Số 23.45 được lựa chọn để minh họa cách hàm modf() hoạt động.
  • Biến number chứa số thực cần tách.
  • Biến integer_part sẽ lưu trữ phần nguyên của số.
  • Biến fraction_part sẽ chứa giá trị trả về của hàm modf(), tức là phần thập phân của số.

Khi chương trình được chạy, kết quả in ra sẽ như sau:

Original number: 23.45
Integer part: 23
Fractional part: 0.45

Như vậy, ta đã dễ dàng tách phần nguyên và phần thập phân của số 23.45 bằng hàm modf(). Điều này rất hữu ích khi bạn cần thao tác riêng rẽ với phần nguyên và phần thập phân của một số thực trong các bài toán khoa học hoặc đồ thị.

Ngoài ra, việc kết hợp modf() với các hàm toán học khác có thể giúp bạn thực hiện các phép toán phức tạp hơn. Ví dụ, nếu bạn cần làm tròn số hoặc tìm các giá trị xấp xỉ, có thể sử dụng hàm floor() hoặc ceil() để xử lý phần nguyên thêm sau khi dùng modf().

Trong trường hợp bạn cần khả năng mở rộng và khả năng xử lý với độ chính xác cao hơn, việc sử dụng thêm các thư viện và các hàm hỗ trợ có thể là một lựa chọn tốt. Tuy nhiên, đối với các nhu cầu cơ bản thì modf() là hoàn toàn đủ.

Comments