Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/150.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 战俘工作方式不同,详细解释? inta=pow(100,2)//第1行 intb=ceil(pow(100,2))//第2行 cout_C++ - Fatal编程技术网

C++ 战俘工作方式不同,详细解释? inta=pow(100,2)//第1行 intb=ceil(pow(100,2))//第2行 cout

C++ 战俘工作方式不同,详细解释? inta=pow(100,2)//第1行 intb=ceil(pow(100,2))//第2行 cout,c++,C++,原因是pow将两个double值作为参数(并返回一个double),并且通常实现为pow(x,y)是exp(y log x)。即使是看似微不足道的输入值也会“消失”。看 请注意,std::pow具有整数类型的重载,这在使用整数算术时非常有用。在cout语句中,pow(100,2)确实是一个双精度值,略低于10000(通过pow函数的众所周知的效果),但是的默认精度设置cout会导致舍入并作为整数输出。它不会打印9999.9999,因为它是整数而不是浮点….而浮点->整数转换截断每个带有IDE的人

原因是
pow
将两个
double
值作为参数(并返回一个
double
),并且通常实现为
pow(x,y)
exp(y log x)
。即使是看似微不足道的输入值也会“消失”。看


请注意,
std::pow
具有整数类型的重载,这在使用整数算术时非常有用。

cout
语句中,
pow(100,2)
确实是一个双精度值,略低于
10000
(通过
pow
函数的众所周知的效果),但是
的默认精度设置cout
会导致舍入并作为整数输出。

它不会打印9999.9999,因为它是整数而不是浮点….而浮点->整数转换截断每个带有IDE的人或读过IDE的人都会知道它返回浮点值。
ceil(100,2)是什么
该怎么办
ceil()
只接受一个参数。你是说
ceil(pow(100,2))
?@Dadep:no.第1行证明了pow的结果是一个浮点值,它被截断为9999。这并不能解释为什么输出不是9999.9999,我相信它与链接的问题相耦合。不,事实并非如此。在这种情况下,请随意否决:这就是机制的作用。我认为这无助于你理解我为什么这么说。
int a=pow(100,2);//line 1
int b=ceil(pow(100,2));//line 2
cout<<pow(100,2);//line 3