انواع روش‌های Typecasting

اگر هنگام استفاده از اپراتورهای محاسباتی، هر دو عملوند از یک نوع داده باشند (مثلا هر دو int باشند)، خروجی نیز همان نوع داده خواهد بود. در این مورد توجه داشته باشید که اگر نیاز بود، حتما Cast انجام دهید. اگر نوع دادهٔ یکی از عملوندها بزرگتر از دیگری باشد (مثلا یکی int و دیگری float باشد)، خروجی نوع دادهٔ بزرگتر خواهد بود.

حاصل تقسیم 3 به 2، عدد 1 خواهد بود.
حاصل تقسیم 3 به 2.0، عدد 1.5 خواهد بود.

در زیر انواع روش‌های Typecasting آورده شده است.

#include <stdio.h>

int main()
{
    int a1 = 15, a2 = 10;
    float b1, b2;

    // without casting
    b1 = a1 / 2;

    // 4 methods for casting:
    b1 = a1 / 2.0;
    b1 = a1 / (float)2;
    b1 = (float)a1 / 2;
    b1 = (float)a1 / (float)2;

    // without casting
    b2 = a1 / a2;

    // 3 methods for casting:
    b2 = a1 / (float)a2;
    b2 = (float)a1 / a2;
    b2 = (float)a1 / (float)a2;

    // Technically, it's sufficient to cast one side to float

    printf("%.2f\n%.2f\n", b1, b2);
    return 0;
}