Я встраиваю код Python в свою программу на С++. Использование PyFloat_AsDouble приводит к потере точности. Он сохраняет только до 6 цифр точности. Моя программа очень чувствительна к точности. Есть ли известное решение для этого? Вот соответствующий код C++:
_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, в то время как значение, возвращаемое кодом Python, представляет собой число с плавающей запятой, которое может иметь более высокую точность. Как получить полную точность?
retVals
? Если вы объявили его как массивfloat
, вы получаете то, что просили. - person Tim Peters   schedule 08.04.2014