, если мне нужно иметь только (float) перед ценой тыкв
В C многие операторы, такие как *,/,+,-
(не все), требуют операнды,после обычных рекламных акций, чтобы быть того же типа.
Если они различаются, один из них преобразуется в тип другого.
В случаях int math_operator float
, float math_operator int
int
преобразуется в float
.
Давайте попробуем по-разному.
int price_of_pumpkin = 10;
int sales = 59;
int days_worked = 7;
Будет avg_profit1
печататься как "84.29"
или "84.00"
?
float avg_profit1 = price_of_pumpkin * sales / days_worked;
Будетavg_profit2
печать как "84.29"
или "84.00"
?
float avg_profit2 = (float)price_of_pumpkin * sales / days_worked;
Будет avg_profit3
печать как "84.29"
или "84.00"
?
float avg_profit3 = (float)price_of_pumpkin * (float)sales / days_worked;
Дополнительные сведения.
Даже float * float / float
может быть сделано с использованием математики double
или long double
, поскольку C позволяет, в зависимости от значения FLT_EVAL_METHOD
, использовать математику с более высокой точностью.