Because of Decimal value. If you calculate your formula step by step you will understand this difference is due to values which are coming after decimal point when you are using decimal
as a type
When you divide 3000(integer) by 881:
int Value = 3000
//Output is 3. Output is in integer
decimal X = (Value / 881); //When int is divided by int then result is in int
When you divide 3000(decimal) by 881:
decimal Value = 3000
//Output is 3.4052213393870601589103291714. Output is in decimal.
decimal X = (Value / 881); //When decimal is divided by int then result is in decimal
.Net fiddle
I hope .net fiddle will give you a better idea of my answer