Среда выполнения может выполнять операции с плавающей запятой с более высокой точностью, а затем обрезать при присваивании (при необходимости).В конечном итоге, если вы поделите двойное число на число с плавающей точкой, вы получите двойное возвращение, если только вы специально не бросили на число с плавающей точкой.Это может быть подтверждено следующим:
float a = 4.246f;
double b = 8.492;
var c = b/a;
Console.WriteLine(c.GetType()); // System.Double
В некоторых случаях, даже если вы назначаете операцию с плавающей запятой для поплавка, эта операция все еще может выполняться средой выполнения с более высокой точностью.Есть пример этого в этом вопросе .