我在我的C++程序中嵌入了python代碼。 使用PyFloat_AsDouble導致精度損失。它只能保持6位精度數字。我的程序對精度非常敏感。有沒有已知的解決方法? 下面是相關C++代碼:從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精度,同時由Python代碼返回的值是可以具有更高的精度浮點數。 如何獲得完整的精度?
'retVals'是如何聲明的?如果你將它聲明爲一個「float」數組,你就會得到你所要求的。 –
retVals被宣佈爲雙打的向量 – Akhil