Я надеялся, что во всех случаях показал 2.33
, однако, по какой причине только во втором случае это произошло?По какой причине printf неправильно отображает поплавок?
printf("Without cast: %0.2f\n", 7/3); // Whitout cast: 0.00
printf("With cast: %0.2f\n", (float) 7/3); // With cast: 2.33
float x = 7/3;
printf("With var: %0.2f\n", x); // With var: 2.00
Я просто заметил это поведение с поплавком. Если я использую целочисленную переменную, этого не происходит.
Это потому, что '7' и' 3' являются 'int'. –
Возможный дубликат [Что определяет тип данных, который будет использоваться для хранения временного значения в?] (Http://stackoverflow.com/questions/10221437/what-decides-what-datatype-that-will-be-used- в магазине-The-временное значение в) – usr2564301