IronPython 스크립트를 플러그인으로 사용하고 C#으로 코딩 된 기능을 활용하는 프로젝트에서 작업합니다. 때이 비트, 그러나C#/IronPython Interop 및 "float"데이터 형식
mc = MyClass()
mc.ValueDictionary = Dictionary[int, float]({1:0.0, 2:0.012, 3:0.024})
:이 같은 IronPython의 코드에서 해당 속성의 값을 설정
Dictionary<int, float>
: 내 C# 클래스 중 하나, 나는 유형 인 속성을 가지고 코드가 실행될 때, 그것은 다음과 같은 예외가 발생합니다 :
Microsoft.Scripting.ArgumentTypeException was unhandled by user code
Message=expected Dictionary[int, Single], got Dictionary[int, float]
이 일이 괴상하게하기를, 원래 C# 코드는
을 사용Dictionary<int, double>
IronPython에서 "double"유형을 찾지 못해서 "float"을 시도해 보았지만 오류가 발생하지 않아 정상적으로 작동했습니다. 하지만 이제는 float을 사용하여 양쪽 끝 (처음부터 사용 했어야 함)에서 오류가 발생하고 C# 코드가 "단일"데이터 형식을 사용한다고 생각합니까?!
심지어는 C# 라이브러리와, 과연 대한 개체 브라우저에서 확인했습니다, 그것은 당신을 매우, 정말 여기에 질문을 참조 해달라고 "싱글"
감사합니다, 완벽한 해답. 그리고 예, 매핑의 내용을 이미 정리 한 것 같아요. 이유를 모르겠습니다. 그것은 C#의 float가 Python에서 플로트되지 않을 것이라고 카운터의 직설적 인 것처럼 보였습니다. –
오신 것을 환영합니다! 최근 비슷한 문제가 발생했습니다 (C#/Python Interop). 실제로 C와 비슷한 모든 언어와 마찬가지로 직관적 인 직관력을 가진 Java와 더 많은 사람들은 단 정밀도를 위해'float '을 사용합니다. –