我写了一个代码来计算错误函数或double erf(double x)
。它在计算中使用大量常量,而常量也使用double。但是,要求是编写代码float
格式或float erf(float)
。我必须保持6位小数的精度(通常是float
)。
当我将erf(x)
转换为float erf( double x)
时,结果仍然相同且准确。但是,当我将x
转换为float
或float erf(float x)
时,在x
的较小值中出现了一些严重错误。
有没有一种方法可以将float
的double
转换为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/