首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

关于标准数学函数pow的有关问题

2012-04-12 
关于标准数学函数pow的问题今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必

关于标准数学函数pow的问题
今天才发现用标准数学函数pow求幂的时候有一个限制,就是底数为负数的时候指数必须为整数,那如果我想计算(-3125)^0.2   =   5该怎么算呢?是有什么扩展的数学函数库还是怎么算?
还发现Wnidows自带的计算器也不能算这个,网上很多下载的计算器也不能算,google和baidu的计算器倒是能算,搜狗的也算不了,真是昏倒!

[解决办法]
当指数不为整数时,并非所有幂函数的定义域都是整个实数域。
比如:函数x ^ (1/2)的定义域就不包括负数。
这是个数学问题,不是计算机问题。
[解决办法]
再说,计算机里的浮点数也不见得总是能非常精确的代表一个分数。
比如,对于分数,1/7来说,x ^ (1 / 7)在负数域上本来是有定义的。但如果你写:
float f = 1 / 7.0;
CPU当然无法判断出这个f本来是从一个分母是奇数的整数算式上算出来的。
[解决办法]
int n=pow(3125, 0.2);

然后根据符号: n = -n; 就得到结果 5 了 ....
[解决办法]
严谨 是靠自己解决的

热点排行