I'm passing a float as dynamic PyObject from Python to C# and this kind of assignment is automagically accepted: ``` double csharpfloat = PythonFunctionReturningFloat(); ``` But when using this PyObject in other numerical operations, then explicit casting is required: ``` double csharpfloat = 1/(double)PythonFunctionReturningFloat(); double csharpfloat += (double)PythonFunctionReturningFloat(); ``` Any reason for such inconsistent behavior?