它印在我身上-inf
。我使用的每个库/编译器是否都已固定?
代码:
#include <iostream>
#include <math.h>
using namespace std;
int main ()
{
double result = log10(0.0);
cout << result;
}
还是可以在不同的平台上改变?您将如何管理pole error
保管double
?
根据cplusplus的说法,这取决于您要获取的库log10(0)
。但是,通常log10(0)
未定义的值(可以根据-inf
需要定义,但不是实数)。通常,在发生此类未定义结果(在C ++中,未定义行为不是未定义,而是在数学上未定义)之前,应防止它们发生。例如
double x;
x = foo();
if ( x <= 0 ) {
/* handle this case extra */
else {
y = log10(x);
}
在使用的情况下,使用什么值在log10(0)
很大程度上取决于您的应用程序。但是,我认为0
在进行计算之前更容易进行检查,而不是依靠log10(0)
返回某个特定值(因为它可能是-inf
或完全不同)来进行检查。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句