decimal p = ((Hours.Duration) / 3600);
(Hours.Duration) = p;
вы получаете ошибку, потому что p
является десятичным и Hours.Duration является целым числом, вы не можете назначить десятичное число для int без явного приведения.
(Hours.Duration) = (int)p;
Если Hours.Duration
равно integer
, 3600 также является целым числом, тогда произойдет целочисленное деление, то есть ваше десятичное значение будет потеряно.например, в целочисленном делении 7/2 =3
.Если вы хотите, чтобы ответ был равен 3,5, то в делении нужно указать хотя бы одно десятичное число, т.е. 7.0/2 = 3.5
ИЛИ 7/2.0 = 3.5
.