c++ - Float in var bug? -


this question has answer here:

i use mesure elapsed time :

const clock_t begin_time = clock(); // code here  cout << float( clock () - begin_time ) /  clocks_per_sec;   //return 1.234  float var = ( clock () - begin_time ) /  clocks_per_sec; cout << var;                                                //return 1 

please explain me don't understand going on.

edit : why printed var doesn't have ".234" ?

the first expression:

float( clock() - begin_time) / clocks_per_sec; 

converts subsexpression clock() - begin_time floating-point value, means whole expression corresponds floating-point division (the result of 1.234f in example).

in second expression:

( clock() - begin_time) / clocks_per_sec; 

all arguments of integral type, integer division performed. result of integer value (in example 1). later result converted float (1.0f) assigned floating-point variable var.

if want store result in float variable var can use:

float var = float( clock() - begin_time ) / clocks_per_sec; cout << var;