要想弄清這個問題,首先要看看這個函數(shù)的原型:
創(chuàng)新互聯(lián)建站專注于陽春企業(yè)網(wǎng)站建設(shè),自適應(yīng)網(wǎng)站建設(shè),購物商城網(wǎng)站建設(shè)。陽春網(wǎng)站建設(shè)公司,為陽春等地區(qū)提供建站服務(wù)。全流程按需網(wǎng)站設(shè)計,專業(yè)設(shè)計,全程項目跟蹤,創(chuàng)新互聯(lián)建站專業(yè)和態(tài)度為您提供的服務(wù)
打開頭文件:math.h
看到:
double _Cdecl _FARFUNC sqrt (double __x);
可見輸入的自變量的類型是雙精度型,輸出結(jié)果也是雙精度型。
因此,c語言使用sqrt函數(shù)得到的數(shù)據(jù)的類型是雙精度型(double)。
long double VC++ 編譯器可以有 17位有效數(shù)字。
精確到20位,需要自己 定義長數(shù)和四則運(yùn)算,然后用級數(shù)展開的辦法計算平方根。
可以通過setw(n)函數(shù)設(shè)定。n是你設(shè)定的位數(shù)(包括小數(shù)點前和后一共的位數(shù))。
C語言中sqrt函數(shù)是指的開方運(yùn)算函數(shù),得到的結(jié)果是函數(shù)變量(可以是數(shù)值,也可以是變量名)的算術(shù)平方根。如輸入m=sqrt(4);,則輸出結(jié)果為2?;蛘邔τ谧兞縜有賦值9,,則輸入m=sqrt(9),輸出結(jié)果為3.
需要注意的是以下三點:
sqrt函數(shù)運(yùn)行的是結(jié)果是算術(shù)平方根,即不能運(yùn)算處負(fù)數(shù)值,也不能輸出虛數(shù)結(jié)果。如需要得到算術(shù)平方根中的負(fù)數(shù)值,則應(yīng)該在sqrt函數(shù)前添加負(fù)號。
sqrt函數(shù)的參數(shù)必須是非負(fù)數(shù)值,如果是負(fù)數(shù)值,則輸出會報錯,即數(shù)值無效;如果參數(shù)是未定義的非數(shù)字變量,則按回車后也會報錯,即變量名有誤。
sqrt函數(shù)的計算精度與C語言設(shè)置的精度有關(guān),可以通過設(shè)置更改精度。
鼠標(biāo)點sqrt后按F1,系統(tǒng)會有出現(xiàn)用法和例子,我簡單舉個例吧:
printf("%lf", sqrt(123));