Trabajando en un proyecto que utiliza algunos scripts de IronPython como plug-ins, que utilizan la funcionalidad codificada en C#. En una de mis clases de C#, tengo una propiedad que es de tipo:C#/IronPython Interop y el tipo de datos "flotante"
Dictionary<int, float>
fijo el valor de dicha propiedad de la código de IronPython, así:
mc = MyClass()
mc.ValueDictionary = Dictionary[int, float]({1:0.0, 2:0.012, 3:0.024})
Sin embargo, cuando este bit de código se ejecuta, se lanza la siguiente excepción:
Microsoft.Scripting.ArgumentTypeException was unhandled by user code
Message=expected Dictionary[int, Single], got Dictionary[int, float]
Para hacer las cosas más extrañas, originalmente el código C# utiliza
Dictionary<int, double>
pero no pude encontrar un tipo "doble" en IronPython, intenté "flotar" por un capricho y funcionó bien, sin dar ningún error. Pero ahora que está usando float en ambos extremos (que debería haber estado usando desde el principio) comete un error, y piensa que el código C# está usando el tipo de datos "Single"?
Incluso he comprobado en el explorador de objetos para la biblioteca de C# y, efectivamente, se muestra como el uso de un tipo de "flotar" y no "individual"
Gracias, respuesta perfecta. Y sí, creo que de alguna manera ya dijiste cuáles eran las asignaciones, simplemente no sabía por qué. Simplemente parecía intuitivo que la flotación en C# no flotaría en Python. –
¡De nada! Tuve un problema similar últimamente (C#/Python Interop). De hecho, es muy contrario a la intuición, ya que todos los lenguajes tipo C, Java y muchos más usan 'float' para números de precisión simples. –