// type_cast.c
#include <stdio.h>

int main(void)
{
    const int a = 2;
    double b1, b2;

    b1 = 1.0 / a;  // aが自動的に(double)aとして処理される
    b2 = 1.0 / (double)a;

    printf("1.0 / a: %lf\n", b1);  // => "1.0 / a: 0.500000
    printf("1.0 / (double)a: %lf\n", b2);  // => 1.0 / (double)a: 0.500000

    b1 = 1 / a;  // (1 / a)が自動的に(double)(1 / a)として処理される
    b2 = 1 / (double)a;  // (1)が自動的に(double)(1)として処理される

    printf("1 / a: %lf\n", b1);  // => 1 / a: 0.000000
    printf("1 / (double)a: %lf\n", b2);  // => 1 / (double)a: 0.500000

    return 0;
}