2016-03-16 2 views
-1

Я только что пришел через следующее заявление:, что поплавок в выражении лица PRINTF означает

printf("%d days total: %.1f%% were below freezing.\n",all_days, 100.0 * (float) cold_days/all_days); 

Мне нужно объяснение по поводу использования (float) внутри printf выражения в приведенном выше заявлении. Если у вас есть какие-либо ссылки, пожалуйста, свяжитесь с ним.

+0

Эта функция называется * type casting *. – jxh

ответ

1

Также стоит отметить, что этот литой, скорее всего, unneccesary. 100.0 * (float) cold_days/all_days будет выполняться слева направо, а так как 100.0 уже является номером с плавающей запятой (double), результатом 100.0 * cold_days будет также double.

А поскольку float обновлен до double для printf (как и любая другая функция вариационного аргумента), литье является избыточным.

1

Вы производите целое число для плавания с (float) cold_days.

Подробнее о литье: this link.

Смежные вопросы