c++ - Do integer divisions to integers need a cast to float or double to be more precise? -
If I split the integer a
and b
for the output Want to do one third integer c
, do I need to put the split in float or repeat it before dividing to ensure the most accurate?
int a, b; Int c1 = a / b; // without CR2 (float) A / B;
Is c1
more, less or less accurate as c2
?
No, you have to restrict yourself from casting.
With big values, e.g. 1000000000L / 1000000001 L is clearly 0, but when float is inserted, it returns 1.0, because (float) a == (float) a + 1
main () {int a = 1000000000; Printf ("% d \ n% d", a / (a + 1), (int) ((float) a / (a + 1))); }
Output:
0 1
Comments
Post a Comment