내 C++ 프로그램에 파이썬 코드가 임베드됩니다. PyFloat_AsDouble을 사용하면 정밀도가 떨어집니다. 최대 6 자릿수까지만 유지합니다. 내 프로그램은 정밀도에 매우 민감합니다. 이것에 대한 알려진 수정이 있습니까? 파이썬 코드에 의해 리턴 된 값보다 높은 정밀도를 가질 수 플로트 인 반면,Python float에서 C++ double로 변환하는 동안 정밀도 손실
_ret = PyObject_CallObject(pFunc, pArgs);
vector<double> retVals;
for(size_t i=0; i<PyList_Size(_ret); i++){
retVals[i] = PyFloat_AsDouble(PyList_GetItem(_ret, i));
}
retVals [I]은 (6)의 정밀도를 가지고 여기 관련 C++ 코드이다. 전체 정밀도를 얻는 방법?
어떻게'retVals'가 선언 되었습니까? 'float'의 배열로 선언했다면, 여러분이 요구 한 것을 얻게 될 것입니다. –
retVals는 double의 벡터로 선언됩니다 – Akhil