我在我的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