关于pow()函数的问题 c/c++
1个回答
展开全部
首先说,我用GCC编译时出现了与LZ相同的差1情况,但用其他编译器无此现象,pow的实际行为来自于各个编译器的不同实现,各有差别是可以理解的,有误差更是无可厚非,然哪怕计算值比理论值少那么0.00000001,转换成整型时结果都会减1。但是传递参数给pow函数时,前后两次的参数事实上是一样的,同样的输入pow不可能会产生不同输出。我看了下GCC产生的汇编代码,发现实际上第二次调用pow实际上并没有真的调用,因为参数都是常量,GCC直接省略了pow调用过程而直接把结果值15625传给了printf函数。相同的调用做了不同处理,因而出现了两种结果。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询