新聞中心
關(guān)于C語言中的POW函數(shù)
從一個程序員本身考慮問題方面來說:
創(chuàng)新互聯(lián)建站自2013年創(chuàng)立以來,先為大廠等服務(wù)建站,大廠等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為大廠企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
這2個結(jié)果是不同的。
為什么?
1. c=4*10*10*10*10 = 40000
2.C= 4*POW(10,4) = 40000.00
在C與語言中,整數(shù)40000和浮點數(shù)40000 在不同的系統(tǒng)里有不同存儲方法。 另外整數(shù)和浮點數(shù)肯定是不同的。
所以,請注意數(shù)據(jù)類型
另外,樓上的為什么說都是一樣呢?
請注意看:
int main(int argc, char *argv[])
{
float c = 4 * pow(10,4); // POW 函數(shù),而且前面是float型
int x = 10, y = 4;
float z;
z = 4 * pow(x,y); // 同樣是POW函數(shù),而且前面也是float型,
//所以樓上根本沒有從本質(zhì)上幫助你,而且會誤導(dǎo)你。
printf("%f\n%f\n", c, z);
return 0;
}
c語言中pow的用法
pow()函數(shù)用來求x的y次冪,x、y及函數(shù)值都是double型 ,其原型為:double pow(double x, double y)。
實例代碼如下:
#includestdio.h
#includemath.h
void main()
{
double x = 2, y = 10;
printf("%f\n",pow(x, y));
return 0;
}
相關(guān)內(nèi)容:
C++提供以下幾種pow函數(shù)的重載形式:
double pow(double X,int Y);
float pow(float X,float Y);
float pow(float X,int Y);
long double pow(long double X,long double Y);
long double pow(long double X,int Y);
使用的時候應(yīng)合理設(shè)置參數(shù)類型,避免有多個“pow”實例與參數(shù)列表相匹配的情況。
其中較容易發(fā)生重載的是使用形如:
int X,Y;
int num=pow(X,Y);
這是一個比較常用的函數(shù),但是編譯器會提醒有多個“pow”實例與參數(shù)列表相匹配。
可以使用強(qiáng)制類型轉(zhuǎn)換解決這個問題:num=pow((float)X,Y)。
C語言pow函數(shù)
#includestdio.h
#includeiostream
#includemath.h
#includestring.h
using namespace std;
#define N 10
int function(char a[])
{
int i,c,sum=0;
int b[N];
c=strlen(a);
for(i=0;ic;i++)
{
if('A'=a[i]a[i]='E')
b[i]=a[i]-55;
else if('a'=a[i]a[i]='e')
b[i]=a[i]-87;
else
b[i]=a[i]-48;//因為char類型的數(shù)字0對應(yīng)十進(jìn)制的48,這下你就懂了吧?。?!
}
coutendl;
for(i=0;ic;i++)
sum=int(sum+b[i]*pow(16,c-1-i));
return sum;
}
main()
{
char a[N];
printf("Please input a string:\n");
gets(a);
printf("%d\n",function(a));
return 0;
}
你可以試一下子,我已經(jīng)再改的地方做了注釋,而且,必須將char類型數(shù)字改成int型的數(shù)字,否則會產(chǎn)生不確定的錯誤?。?!希望滿意,給分啊親!
C語言pow函數(shù)問題
pow()函數(shù)用來求x的y次冪,x、y及函數(shù)值都是double型 ,其原型為:double pow(double x, double y)。
實例代碼如下:
#includestdio.h
#includemath.h
void main()
{
double x = 2, y = 10;
printf("%f\n",pow(x, y));
return 0;
}
擴(kuò)展資料:
在調(diào)用pow函數(shù)時,可能導(dǎo)致錯誤的情況:
如果底數(shù) x 為負(fù)數(shù)并且指數(shù) y 不是整數(shù),將會導(dǎo)致 domain error錯誤。
如果底數(shù) x 和指數(shù) y 都是 0,可能會導(dǎo)致 domain error?錯誤,也可能沒有;這跟庫的實現(xiàn)有關(guān)。
如果底數(shù) x 是 0,指數(shù) y 是負(fù)數(shù),可能會導(dǎo)致?domain error 或pole error 錯誤,也可能沒有;這跟庫的實現(xiàn)有關(guān)。
如果返回值 ret 太大或者太小,將會導(dǎo)致range error 錯誤。
錯誤代碼:
如果發(fā)生 domain error 錯誤,那么全局變量 errno 將被設(shè)置為? EDOM;
如果發(fā)生 pole error 或 range error 錯誤,那么全局變量 errno 將被設(shè)置為 ERANGE。
參考資料:
pow函數(shù)——百度百科
新聞標(biāo)題:c語言pow函數(shù)最大范圍,c的pow函數(shù)
文章起源:http://www.dlmjj.cn/article/hdodpd.html