1樓:匿名使用者
預設是來6位輸源
出時可以控制bai
保留的du位數如
zhidaofloat sum=1.23456;
printf("%f\n",sum);
printf("%.2f\n",sum);輸出為1.234560 1.23
2樓:匿名使用者
如果有無用的0就不顯示
c語言有3位小數的浮點型數字輸出後怎麼最後一位會多出一個1?
3樓:匿名使用者
浮點數在儲存的時候 是近似值
所以 在列印的時候多一點 少一點 都是正常的於是 在程式設計的時候,一般不會用%f 而是取一定位數,比如 %.3f 保留三位小數。
如果你要要求前六位都是完全精確的值,那麼可以使用double注意 輸出的時候用%lf
4樓:匿名使用者
浮點型預設的就是6位小數。如果你想輸出三位小數的話
就把你原句中printf("%f",a[i]);改為printf("%.3f",a[i]);
注意那個點
c語言中%f表示的是什麼,為什麼有時小數點後保留6位,有時小數點後保留1位
5樓:匿名使用者
printf("%f", fval ); //這是浮點預設輸出格式,小數點保留6位
printf("%.1f", fval ); //.1是說明,小數點保留1位,對其後的
資料進行四捨五入
printf("%.2f", fval ); //.2是說明,小數點保留2位,對其後的資料進行四捨五入,你想保留幾位,就用點幾
printf("%10f", fval ); //輸出寬度為10個字元,右對齊,前補空格,小數點保留6位
printf("%10.2f", fval ); //輸出寬度為10個字元,右對齊,前補空格,小數點保留2位
6樓:匿名使用者
printf("%.mf",fval)的舍入這裡,有個巨大的誤區,不是四捨五入,它採用的是四捨六入五成雙規則,詳情各位可參考百科。
四捨六入無成雙網頁連結
數值修約網頁連結
c語言中輸出時怎樣控制小數點後的位數,請舉例說明保留1、2、3、4位小數等等,謝謝
7樓:凌亂心扉
舉例說明如下:
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;
8樓:匿名使用者
我們在輸出語句上加如0.就行了,比如printf("%0.2f",a); 就是保留2位.
上**#include
int main()
再上結果圖:
擴充套件資容料:小數在計算機中的儲存:
對於浮點型別的資料採用單精度型別(float)和雙精度型別(double)來儲存,float資料佔用 32bit,double資料佔用 64bit.其實不論是float型別還是double型別,在計算機記憶體中的儲存方式都是遵從ieee的規範的,float 遵從的是ieee r32.24 ,而double 遵從的是r64.
53。無論是單精度還是雙精度,在記憶體儲存中都分為3個部分:
1) 符號位(sign):0代表正,1代表為負;
2) 指數位(exponent):用於儲存科學計數法中的指數資料,並且採用移位儲存;
3) 尾數部分(mantissa):尾數部分
9樓:靠名真tm難起
%nf 即輸出的bai
數字佔dun位 當原數字位數zhi大dao
於n時原樣輸出,原數字位數小於回n時輸出數字左端補上空答格,比如原數字為a=1.23456;n為4時輸出為1.23456,n為9時輸出為(空格空格1.23456)
10樓:陳昇富你好
#include
void main()
以此類推權
你說的n指輸出的資料共佔n列
11樓:黃
n是你需要保留的多少位小數的位數,a為變數。比如:
float a=3.14159;
printf("%3f",a);
輸出的結果為:3.141
12樓:匿名使用者
一。%nf 即輸出的數
自字佔n位 當原數字位數大於n時原樣輸出,原數字位數小於n時輸出數字左端補上空格,比如原數字為a=1.23456;n為4時輸出為1.23456,n為9時輸出為
(空格空格1.23456)
二。%n.mf 即輸出總共佔n位其中有m位小數 如a=1.23456 用%4.2f輸出為1.23如果用
%5,1f輸出為123.4即長度為5小數為1!這裡也有當原數字長度小於n時左端補空格這個規則!
還有就是當n前面有個負號時即%-nf或%-n.mf時就右端補空格!
13樓:手機使用者
地址單元而定
#define uchar unsigned char#define uint unsigned intuchar xdata xram _at_ 0xff00[4];//指定外部儲存地址
uchar data1[4]; //你先把你的四位數每位單獨分離出回來存到這個4成員陣列答
void main(void)}
14樓:匿名使用者
保留1位小數 printf("%.1f",a);
保留2位小數 printf("%.2f",a);
保留3位小數 printf("%.3f",a);...
c語言 執行結果中為什麼雙精度實型只輸出小數點後六位
15樓:匿名使用者
在c語言中,輸出double型別(雙精度實型)以及float型別(單精度實型)時,預設輸出6位小數。
比如這樣的版**:
double a = 1;
printf("%lf\n", a);
輸出會是
1.000000
但是權有時六位會顯得很長,沒必要。比如計算平均分,一到兩位小數就足夠了。
可是有時六位又不夠,需要更多位小數,比如計算高精度平方根。
這時可以用printf的格式控制。
如果要輸出n位小數,那麼可以用%.nlf的格式。其中n為數字。
如要輸出10位小數,那麼
printf("%.10lf\n", a);
即可類似的輸出1位小數
printf("%.1lf\n", a);
16樓:匿名使用者
樓上的回答是對的,printf要求你輸出格式,預設6位小數,你可以指定輸出幾位
17樓:匿名使用者
printf("%lf",p);
是一般輸出形式預設是 6位吧
你 試試
printf("%.10f",p);
也許就 可以了
18樓:匿名使用者
你可以自己設定輸出精度的
printf("%.nf",p); n為你的精度
如:printf("%.6f",p); //輸出為小數點後6位
19樓:匿名使用者
只輸出六位小數,這是預設的,可以改變,如:printf("%6",d)
c++中取出一個數的小數部分有幾種方法
20樓:牽著你的手
有一種方法
bai,如du
下:zhi
float f; //假設要
處理這個數dao
回float t = f - (int)f; //小數點前變成0了答while ( t > 0 )
21樓:奈金蘭郝儀
具體的不好說
因為bai方法是想du
出來的.想法是可zhi
以創造的.
通常的做法就dao是減去整數部專分
double
k=???;
cout<從浮點到整數的類屬型轉換是直接截去小數部分.(long)k的結果是k的整數部分
22樓:
具體的自不好說
因為bai
方法是想出來的du.想法是可以創造的.
通常的做法就是減去zhi
整數部分dao
double k=???;
cout<對於從浮點到整數的型別轉換是直接截去小數部分.(long)k的結果是k的整數部分
23樓:
運用取整bai就可以了,如:du
double d=1.234
d-=(int)d;
補充問題zhi:
(1)這些都dao是float在計算機裡的精回度問題,精度問題一般是答沒辦法解決的。但顯示的時候可以調整一下。
如:printf("%.2f",a);那就兩位小數了。
一般程式設計的時候最好用double(float太糟糕了),然後在空間不夠用,並且精度又沒有高要求的時候,把double換成float。
(2)沒錯,就是六位。不過它內部有一位保留位,是用於內部精度控制的。
24樓:匿名使用者
如果整數部分和小copy數部分在c++基本型別可表示的範圍之內,那麼可以int k = ***;
double k_p = k - int(k);
如果有一部分不在可表示的範圍之內,那麼就用分割法,以小數點 . 為關鍵碼,查詢小數部分,存入在一個陣列內。
25樓:匿名使用者
除1.000000取餘即可以.
vc語言中的%f在輸出的時候是小數點後面需要寫幾個0啊
26樓:陳冠鋼
一般如果不作設定,會輸出小數點後6位。
不需要規定寫幾個零。可內
以自定義輸出小容數點後幾位格式如下:
#include
void main()
結果:1.22
1.222222
兩位小數,保留一位小數的近似值是60,這個兩位小數最大
是這個兩位小數最大值是6.4,最小值是5.5 根據四捨五入原則最大值是6.04最小值是5.95 應該是最小為5.95最大為6.04吧 這個題目本身有兩個小問。首先是看最大值的問題,保留一位近似值為回6.0兩位小數最大應答該是十分位即小數點後第一位為4,這樣4舍,可以取到零,也就是說,最大為6.4.最...
小數點的左邊第一位是什麼位,右邊第一位是什厶位 小數點右邊第
小數點的左邊第一位是個位,右邊的第一位是十分位,第三位是千分位.如果幫助到了您,小數點左邊第一位是什麼,右邊第一位是什麼,右邊第三位是什麼 小數點左邊第一copy位是個位,右邊第一位是十分位,右邊第三位是千分位。小數點的前面是整數部分,從右至左依次為 個位 十位 百位 千位 萬位 小數點的後面是小數...
兩個一位小數的乘積四捨五入後是,兩個一位小數的乘積四捨五入後是
兩個一位小數復的積 四捨五入制 後是25.2,這兩個的小數的十分位都是4.這兩個小數的乘積在 四捨五入 前是 25.16 分析 兩個一位小數的積是兩位小數,四捨五入後為25.2,則積的最大值為25.24,最小值為25.15,積的範圍為 25.15 25.24 這兩個的小數的十分位都是4,0.4 0....