It needs atleast one of the operand to be a floating point type (decimal, double or float).
Below is an example with an int and floating point types:
var intValue = (0 + 1) / (1 + 1) // 1/2 = 0 (datatype is int)
var decimalValue = (0 + 1m) / (1 + 1)// 1/2 = 0.5 (datatype is decimal)
var floatValue = (0 + 1f) / (1 + 1)// 1/2 = 0.5 (datatype is float)
var doubleValue = (0 + 1d) / (1 + 1)// 1/2 = 0.5 (datatype is double)
in this case the numerator is a decimal, so the result of the operation is a decimal as well.
Look into integer and floating point divisions in C#.