『壹』 c語言怎麼讓輸出保留兩位有效數字數,不是兩位小數。
這要看你輸出的結果范圍了
如果輸出的
x
是int且
處於
0-99
的話,就可以直接判斷
if(x>9)
直接輸出x
else
先輸出一個字元'0',再輸出x
『貳』 C語言中如何保留一位小數點
可以通過printf函數中的輸出格式說明符來實現保留一位小數點,要保留一位小數就用printf("%.1f",x),例子如程序中給出那樣。
例子如下:
(2)c語言輸出x位怎麼保留擴展閱讀:
1.printf("%3.0f",floatNum):不保留小數
說明:%3.0f表明待列印的浮點數(floatNum)至少佔3個字元寬,且不帶小數點和小數部分,整數部分至少佔3個位寬;
注意:這里的3隻代表整數部分至少佔3位,舍棄小數點和小數點後面的部分。
2.printf("%6.2f".floatNum):保留兩位小數
說明:%6.2f 表明待列印的數(floatNum)至少佔6個字元寬度(包括兩位小數和一個小數點),且小數點後面有2位小數,小數點佔一位,所以整數部分至少佔3位。
注意:這里的6是待列印的數至少佔據的字元寬度,包括兩位小數(如果小數不夠兩位用0補位,例如100.1列印出來為100.10)和一個小數點,所以整數部分至少佔3個字元寬度。
『叄』 C語言中如何保留一位小數點
#include <stdio.h>
int main()
{
printf("%.1f",3.1415926);
return 0;
}
『肆』 c中關於輸出保留位數的問題
c語言的確支持保留數這個問題,但是他只是一種規范,為什麼這樣說,因為他的控制不是強制的,%x.yf:這句話說明輸出整數部分x位,小數部分y位(有效位),如果結果整數部分超過了x位,則這個限制就不起作用,結果不會截斷,而是會原樣輸出,如果少於x位輸出結果前面也不會添加0來補齊,小數部分則是,如果有效位多餘y位,則會加以截斷,進行四捨五入。但是如果小於y位,他不會用0進行補齊;
如:a = 1066.327, b = 1066
printf("%6.2f %6.2f\n", a, b): 結果:1066.33 1066
printf("%3.6f\n", a): 結果:1066.327
解答完畢,希望可以幫助到你。不懂得可以繼續追問我。
『伍』 C語言中輸出時怎樣控制小數點後的位數,請舉例說明保留1、2、3、4位小數等等,謝謝
控制小數位數就是通過輸出格式說明符來規定的
舉例說明如下:
1、float f1=3.1415926;
2、float f2=1234.1415926;
3、float f3=124.1;
4、printf("%3.4f",f1);//輸出結果為:_ _ 3.1416(_表示空格)
5、printf("%3.4f",f2);//輸出結果為:1234.1416
6、printf("%3.4f",f3);//輸出結果為:124.1000
printf("%3.4f",f);中的3是控制f的整數部分按3位的固定位寬輸出;4是按四捨五入的准則保留4位小數。
註:如果整數部分不足3位,則在前面補空格,超過3位,則按實際位數輸出;如果小數部分不足4,則在後面補0。
如果存儲比精度更重要,請考慮對浮點變數使用float類型。相反,如果精度是最重要的條件,則使用double類型。
浮點變數可以提升為更大基數的類型(從float類型到double類型)。當您對浮點變數執行算術時,通常會出現提升。此算術始終以與具有最高精度的變數一樣高的精度執行。例如,請考慮下列類型聲明:
float f_short;double f_long;long double f_longer;f_short=f_short*f_long;
在前面的示例中,變數f_short提升到類型double並且與f_long相乘;然後,結果舍入到類型float,然後賦給f_short。
在以下示例中(使用前面示例中的聲明),將以浮點(32位)精度對變數執行算術;結果隨後將提升到double類型:
f_longer=f_short*f_short;
double f_long;
long double f_longer;
f_short=f_short*f_long;
在前面的示例中,變數f_short提升到類型double並且與f_long相乘;然後,結果舍入到類型float,然後賦給f_short。
在以下示例中(使用前面示例中的聲明),將以浮點(32位)精度對變數執行算術;結果隨後將提升到double類型:
f_longer=f_short*f_short;
『陸』 C語言:怎麼樣使結果輸出時保留一位小數;保留兩位小數
用定點格式。
float 型 %.2f 就是小數2位, %.1f 就是小數1位。
double 型 用 %.2f 就是小數2位, %.1f 就是小數1位。
double 型 用 %.2lf 就是小數2位, %.1lf 就是小數1位。
(6)c語言輸出x位怎麼保留擴展閱讀
算術運算符
用於各類數值運算。包括加(+)、減(-)、乘(*)、除(/)、求余(或稱模運算,%)、自增(++)、自減(--)共七種。
關系運算符
用於比較運算。包括大於(>)、小於(<)、等於(==)、 大於等於(>=)、小於等於(<=)和不等於(!=)六種。
邏輯運算符
用於邏輯運算。包括與(&&)、或(||)、非(!)三種。
位操作運算符
參與運算的量,按二進制位進行運算。包括位與(&)、位或(|)、位非(~)、位異或(^)、左移(<<)、右移(>>)六種。
賦值運算符
用於賦值運算,分為簡單賦值(=)、復合算術賦值(+=,-=,*=,/=,%=)和復合位運算賦值(&=,|=,^=,>>=,<<=)三類共十一種。
『柒』 c語言中如何輸入一個浮點數x然後輸出x但保留五位小數
聲明變數x為double型(浮點雙精度)或float(浮點單精度)。
調用輸入函數scanf("%lf",&x);或scanf("%f",&x);——其中%lf表示x是double型、%f表示float型。
調用printf("%.5f ",x);輸出——其中.5表示小數點後保留5位小數。
『捌』 c語言輸出時怎麼保留有效數字
通過printf()函數的參數控制,這是一種方法:
printf("%.3f", 1.4567); //保留小數點後三位
用0.0這種形式去試吧
『玖』 c語言怎樣保留兩位小數
C語言怎麼保留兩位小數,如果不定義的話,那麼就會默認不是兩位小數,那麼需要輸出內容保留小數,實際上可以對浮點型進行設置的。
1、首先打開IDE,接著保存main.c文件。
『拾』 C語言怎麼保留六位有效數字
IEEE浮點表示
IEEE浮點標准用
.png
的形式近似表示一個數。並且將浮點數的位表示劃分為三個欄位:
符號(sign)s決定這個數是負數(s=1)還是正數(s=0)。可以用一個單獨的符號s直接編碼符號s。
尾數(signficand)M是一個二進制小數,它的范圍是1~2-ξ或者是0~1-ξ。
n位小數欄位.png編碼尾數M。
階碼(exponent)E的作用是對浮點數加權,這個權重是2的E次冪(可能是負數)。k位的階碼欄位 .png編碼階碼E。
在單精度浮點格式(c語言的float)中,s,exp和frac欄位分別為1位,8位和23位,而雙精度浮點格式(c語言中的double)中,s,exp和frac欄位分別為1位,11位和52位。
一個浮點數的常見比特位表示如下:
單精度
雙精度
而根據exp的值,被編碼的值可以分為三大類不同的情況。下面進行一一解釋。
情況1:規格化的值
即最普遍的情況,當exp,即階碼域既不為全0,也不為全1的情況。在這種情況下,階碼欄位解釋為以偏置(biased)形式表示有符號整數,即E=exp-Bias,exp是無符號數(1~254)。Bias是一個等於.png的偏置值,對於單精度來說,k=23,Bias=127,因此E的范圍是-126~+127。
frac被描述為小數值,且0≤frac<1,其二進製表示為0.frac。尾數定義為 M=1+frac ,則M=1.frac。那麼就有1≤M<2,由於總是能夠調整階碼E,使得M在范圍1≤M<2,所以不需要顯示的表示它,這樣還能獲得一個額外的精度位。也就是說,在計算機內部保存M時,默認這個數的第一位總是1,因此可以被捨去,只保存後面的frac部分,等到讀取的時候,再把第一位的1加上去。
情況2:非規格化的值
當exp,即階碼域為全0時,所表示的數便為非規格化的值,該情況下的階碼值E=1-Bias(注:為從非格式化值轉換到格式化值提供了一種方法)。尾數M=frac
非規格化的數有兩個作用。
表示數值0。格式化數中,我們總使得M≥1,因此就無法表示0。而階碼全0時,且尾數也全0時,就可以表示0了。
表示接近0.0的數。它所表示的值分布地接近於0.0,該屬性成為逐漸溢出。
情況3:特殊值
有兩種
階碼全為1,小數域全為0。它得到值為 +∞(s=0)或-∞(s=1),它在計算機中可以表示溢出的結果,例如兩個非常大的數相乘。
階碼全為1,小數域不全為0。它得到值為NaN(Note a Number)。它在計算機中可以表示非法的數,例如計算根號-1時的值。
有了前面了基礎,我們就可以來計算浮點數的數值范圍了。以單精度(float)為例,我們知道它的指數范圍(即E)為-126~+127,而M的范圍為1≤M<2,實際上,對於單精度,1≤M≤2-2^(-23)(注:23為frac欄位所佔的比特位)。那麼我們就可以得到單精度的最大值為:
.png
同理,我們可以得到單精度的最小值為:
.png
我們僅僅以單精度為例,用同樣的方法可以計算其他精度的浮點數數值范圍,在此不再贅述。
浮點數的有效位
有效位也可以理解為我們常說的精度。浮點數的精度是由尾數的位數來決定的。
對於單精度(float),它的尾數為23位,而2^23=8388608,共7位,也就是說最多能有7位有效數字,但至少能保證6位,因此其有效位為6~7位。當然我們可以通過下面的內容進一步理解。以下計算結果保留10位小數。
...png
觀察a和b的結果可以發現,0.0000001和0.0000002之間的其他數是沒有辦法通過單精度浮點數來精確表示的,也就是說,只有到小數點後面7位的值才是精確的,同理,觀察b和c的結果,0.0000002到0.0000004之間的其他數也是不能通過單精度浮點數精確表示的,更不幸地是,這之間的數,甚至只能精確到第6位。
這也就有了單精度浮點數的有效位為6~7位的結論。根據相似的方法,我們同樣可以得到雙精度浮點數的有效位為15~16位的結論,這里不再贅述。
浮點數在內存中的存儲
了解了這么多,我們來看一下一個小數究竟是如何在內存中存儲的。以float f = 8.5f為例。其二進製表示為.png,可見指數實際值為3,則根據E=exp-Bias,可知exp=E+Bias=3+127=130,根據M=1+frac,可知,frac=M-1=0.0001(二進制)而.png