我想知道为什么在C/c ++中有sqrt()函数,因为我们可以实现相同的使用
pow(x,0.5);
Run Code Online (Sandbox Code Playgroud)
怎么会sqrt(x)有所不同pow(x,0.5).有sqrt功能的具体原因是什么?
设,x是一个整数和y = x * x.
那保证sqrt(y) == x吗?
例如,我可以确定sqrt(25)或sqrt(25.0)将返回5.0,不是5.0000000003或4.999999998?
是否有任何形式的保证 - 无论是在 C++ 标准中还是在其他一些文档中 -cos(x)当使用 g++、clang、MSVC 等编译时,C++ 代码计算将产生相同的值,假设这些实现使用 IEEE-754 64double位和输入值x完全相等?我的假设是“是”,但我想在依赖这种行为之前确认这一点。
背景:我正在教授一门课程,学生可能需要计算输入的三角函数。我可以保证这些输入在输入到函数中时是相同的。我知道平等测试double不是一个好主意,但在这种特定情况下,我想知道这样做是否安全。