我写了一个代码来计算错误函数或double erf(double x)。它在计算中使用大量常量,而常量也使用double。但是,要求是编写代码float格式或float erf(float)。我必须保持6位小数的精度(通常是float)。

当我将erf(x)转换为float erf( double x)时,结果仍然相同且准确。但是,当我将x转换为floatfloat erf(float x)时,在x的较小值中出现了一些严重错误。

有没有一种方法可以将floatdouble转换为x,以便仍在erf(x)的代码内保持精度?我的直觉告诉我,erf代码仅对双值数字有效。

最佳答案

您不能从float转换为double,除了float具有相同的double精度。

double 浮点精度

请注意,在C++中,您有erf:http://en.cppreference.com/w/cpp/numeric/math/erf

关于c++ - 在C++中从float转换为double,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31623265/

10-11 22:43
查看更多