short i = 15;
decimal i = 15;
int i = 15d; // 15d - это decimal, тут будет ошибка компиляции (Cannot implicitly convert ...)
int i = (int)15d; // А вот это уже будет работать
int i = (int)15.123d; // Тоже будет работать, но потеряем значения после запятой (точки)