在c語言中是什么意思 C 中float,double到底保留幾位有效數(shù)字?
C 中float,double到底保留幾位有效數(shù)字?浮點(diǎn)精度為2^23,可保證6位。雙精度是2^52,可以保證15位。但是,默認(rèn)情況下,float和double只能顯示6位。如果要添加更多內(nèi)容,需要
C 中float,double到底保留幾位有效數(shù)字?
浮點(diǎn)精度為2^23,可保證6位。雙精度是2^52,可以保證15位。但是,默認(rèn)情況下,float和double只能顯示6位。如果要添加更多內(nèi)容,需要在output語句之前插入cout<< setprecision(20),以強(qiáng)制輸出小數(shù)位數(shù)。
float和double的范圍由索引的位數(shù)決定。
float的指數(shù)有8位,double的指數(shù)有11位。分布如下:
float:1位(符號位)8位(索引位)23位(尾位)
double:1位(符號位)11位(索引位)52位(尾位)
因此,float的指數(shù)范圍為-127~128,double的指數(shù)范圍為-1023~1024,數(shù)字的位數(shù)按補(bǔ)碼的形式劃分。負(fù)指數(shù)決定了浮點(diǎn)數(shù)可以表示的最小非零絕對值,而正指數(shù)決定了浮點(diǎn)數(shù)可以表示的最大絕對值,即浮點(diǎn)數(shù)的范圍。
浮動(dòng)范圍為-2^128~2^128,即-3.40e 38~3.40e 38;雙精度范圍為-2^1024~2^1024,即-1.79e 308~1.79e 308。
2. 精度
浮點(diǎn)和雙精度由尾數(shù)的個(gè)數(shù)決定。浮點(diǎn)數(shù)是根據(jù)科學(xué)的計(jì)數(shù)方法存儲(chǔ)在內(nèi)存中的。浮點(diǎn)數(shù)的整數(shù)部分總是隱含的“1”。因?yàn)樗遣蛔兊模圆挥绊懢取?/p>
Float:2^23=8388608,共7位,即最多可以有7位有效位,但絕對保證為6位,即Float的精度為6~7位有效位;double:2^52=4503599627370496,共16位,同樣,double的精度為15~16位。
C語言中double要輸出幾位小數(shù)?
在C語言中,默認(rèn)的%F是小數(shù)點(diǎn)后的6位數(shù)字。如果您想在小數(shù)點(diǎn)后寫16位數(shù)字,則表示為%。如果是16lf,則不會(huì)自動(dòng)舍入。Double是一個(gè)近似值,通常無法精確計(jì)算。通??梢跃_到小數(shù)點(diǎn)后5位或6位,也就是說,如果超過5位或6位,就可能不準(zhǔn)確。1、 double f=111231.5585 BigDecimal b=新的BigDecimal(f)double f1=b.設(shè)置刻度(2BigDecimal.ROUND半開)。doubleValue()。2、新java.text.DecimalFormat格式( "#. 00 "). 格式(3.1415926)3,c風(fēng)格,最方便,雙D=3.1415926string result=string。格式(“%。2F”,d)字符串。格式(“%-10.2f”,d)4,數(shù)字格式ddf1=NumberFormat.getNumberInstance實(shí)例()void setMaximumFractionDigits(整數(shù)位數(shù))