b的類型聲明錯誤,sprt函數返回double值。
創(chuàng)新互聯(lián)建站成立于2013年,是專業(yè)互聯(lián)網技術服務公司,擁有項目成都網站建設、網站建設網站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元高臺做網站,已為上家服務,為高臺各地企業(yè)和個人服務,聯(lián)系電話:13518219792
DOUBLE 數據類型保存雙精度浮點數。它是一種近似數字數據類型,在算術運算后容易產生舍入誤差。DOUBLE 值的近似特性意味著在比較 DOUBLE 值時通常應該避免使用等式的查詢。
DOUBLE 值需要 8 個存儲字節(jié)。
取值范圍是 -1.79769313486231e+308 到 1.79769313486231e+308,最趨近于零的數為 2.22507385850721e-308。DOUBLE 類型的值精確到 15 位有效數字,而超過第十五位就可能會產生舍入誤差。
sqrt()函數是cmath標頭(在早期版本中為math.h?)的庫函數,用于查找給定數字的平方根,它接受數字并返回平方根。
擴展資料:
float 與 double 類型區(qū)別:
float 單精度浮點數在機內占 4 個字節(jié),用 32 位二進制描述。
double 雙精度浮點數在機內占 8 個字節(jié),用 64 位二進制描述
浮點數在機內用指數型式表示,分解為:數符,尾數,指數符,指數四部分。
數符占 1 位二進制,表示數的正負。
指數符占 1 位二進制,表示指數的正負。
尾數表示浮點數有效數字,0.xxxxxxx, 但不存開頭的 0 和點。
指數存指數的有效數字。
指數占多少位,尾數占多少位,由計算機系統(tǒng)決定。
可能是數符加尾數占 24 位,指數符加指數占 8 位 --?float。
數符加尾數占 48 位,指數符加指數占 16 位 --?double。
知道了這四部分的占位,按二進制估計大小范圍,再換算為十進制,就是你想知道的數值范圍。
直接用兩個數(或變量)相乘就可以表示平方,比如x*x
不過如果,需要求m的n次方,就需要用到pow(x,y)乘方(包括開方)這個庫函數了,使用pow(x,y)這個庫函數,需要math.h頭文件。
其中x和y都是雙精度浮點(double)型。
#include"math.h"
U32sqrt_fun(U64x){
U32low=0;
U32high=x;
U32mid;
U64data;
while(low high){
mid=(low+high)/2;
data=(U64)mid*mid;
if(data x){
high=mid-1;
}else if(data x){
low=mid+1;
}else{
return(mid);
}
}
return(mid);
}
voidmain(void){
volatileU32td1,td2;
U64d=0x12345678ABCD;
td2=sqrt(d);
td1=sqrt_fun(d);
}
擴展資料
C語言無參函數的定義:
dataType是返回值類型,它可以是C語言中的任意數據類型,例如int、float、char等。
functionName 是函數名,它是標識符的一種,命名規(guī)則和標識符相同。函數名后面的括號( )不能少。
body是函數體,它是函數需要執(zhí)行的代碼,是函數的主體部分。即使只有一個語句,函數體也要由{}包圍。
如果有返回值,在函數體中使用return語句返回。return出來的數據的類型要和dataType一樣。
#includemath.h應該是這個吧,開平方的函數就是sqrt(你要開平方的那個數)