為什麼c語言中printff13輸出的是

時間 2021-08-11 17:42:30

1樓:匿名使用者

1/3預設int型結果為0,進行強制轉化後仍然為0,只不過是float型,而1.0/3.0預設為float型

2樓:

這個嗎,你是初學者嗎?1/3是取整數,也就是=0,那為什麼小數後面有6個0了,是因為%f輸出的時候預設為6為有效小數。1.

0/3.0是做除法,它的內型定義為為了浮點型,有就是有小數位的。

3樓:你我一樣的天空

注意輸出型別,%f輸出是浮點型,而1/3都是整形,隱式轉換為零,所以輸出0.000000,這裡懂了後面自然就懂了

4樓:

這個嗎,你是初學者嗎?1/3是取整數,也就是=0,主要是也因為1是整數,而1.0是單精度

5樓:匿名使用者

c語言中的整數除法規則是返回結果的整數部分,比如1/3 = 0.3333333 整數部分是0,所以 1/3=04/3 = 1.3333333 整數部分是1,所以 4/3=1而浮點數和double則是返回帶小數部分的結果。

6樓:言言爾爾

printf("%f",1/3)是雙精度的結果,簡單說就是取整。如printf("%f",4/3)輸出的是1.000000,而

printf("%f",1.0/3.0);則是正常計算。

7樓:匿名使用者

rvusonah5 2 f к· ㏄qmrf

szudmi

ckbv

fgzyhqm

abohpwl

[c語言]printf("%f\n",1.0/3*3)與printf("%f\n",1/3*3)計算結果為什麼不同?

8樓:網海1書生

1.0/3*3這是按浮點數進行計算,1.0/3*3=0.333333...*3=1

1/3*3這是按整數進行計算,1/3*3=0*3=0 (1/3的值會先取整,結果為0)

9樓:匿名使用者

1.0/3*3是實型運算,與你學過的數**算是一致的,輸出結果是1.000000

1/3*3是整型運算,1/3=0,0*3=0,輸出結果是0.000000

語句printf(“%f%%,1.0/3”);輸出的值為什麼 怎麼做啊

10樓:匿名使用者

輸出結bai果是0.333333%。

printf("%f%%",1.0/3),其中的%f就是以浮點du數格式輸出1.0/3的結果。由於1.0是浮zhi

點數,dao所以1.0/3也是一個浮點數,答案版就是0.333333,最後二個連續的%%就是實際輸出一個%符號。

11樓:year飛鵬

printf("%f%%",1.0/3);

其中的%f就是以浮點數格式輸出1.0/3的結果。由於1.0是浮點數,所以1.0/3也是一個浮點數,答案就是0.333333最後二個連續的%%就是實際輸出一個%符號。

12樓:胡書培

printf中連續兩個%%表示輸出一個%,0.333333%

13樓:_藍顏_知己

是不是問為什麼是0.3333333而不是1.33333吧 我也是來找答案 剛才突然看明白了 是1.0除以3 而不是1. 0/3

14樓:灰塵緣

說具體點。。。。。。。。。

書上有一個例題1.0/3.0*3.0==1.0,當我用%f輸出時值為1.000000,用%d輸出時值為0,這是為什麼?

15樓:

1.浮點數是用符號位+階碼+尾數原碼錶示的,1.0在記憶體中的二進位制是00111111 11110000 00000000 00000000 00000000 00000000 00000000 00000000。

若按%d即整數就是中取它的最低4個位元組,看這是不是0?

16樓:匿名使用者

這個和精度損失沒有關係關鍵在printf()輸出的時候沒有考慮到資料型別轉換的問題printf("%d",1.0/3.0*3.

0)計算的1.0/3.0*3.

0是浮點數1.0它在記憶體是以這樣的形式儲存的:00111111 11000000 00000000 00000000以4位元組表示而printf()輸出的時候並不以為自己要輸出一個浮點數,而是把上面的後2位元組當成整型來輸出,結果就變成了0 例子:

#include

void main()

結果是0,printf()出錯 #includevoid main()

結果是1,轉換之後沒有損失 浮點數轉整型直接捨去小數,不會四捨五入

17樓:匿名使用者

猜想:因為這個結果應該是雙精度浮點型,但是精度有所損失,估計實際的結果是0.99999什麼的,不是1,用%f輸出四捨五入了,用%d精度損失發生錯誤了。

證明:嘗試printf("%f",0.9999999999999);然後換成%d試試(結果肯定是不對的)

c語言中字元1是什麼意思, C語言中字元 1 是什麼意思?

珈藍惜夢 1 為轉義字元,代表的意思是 標題開始 在c語言中,所有的ascii碼都可以用 加數字 一般是8進位制數字 來表示。而c中定義了一些字母前加 來表示常見的那些不能顯示的ascii字元,如 0,t,n等,就稱為轉義字元,因為後面的字元,都不是它本來的ascii字元意思了。轉義字元是很多程式語...

c語言中,1《n代表什麼意思,C語言中n 1是什麼意思

臨淵羨魚 如下 n 和 n的作用都是讓n自減1,如原先n為5,n 或 n之後n就變為了4。他們的區別在於 n 這個表示式的值是n自減之前的值,如 int n 5 int a n 此時a的值為5 n 這個表示式的值是n自減之後的值,如 int n 5 int a n 此時a的值為4 例如 n 10 k...

計算機c語言中1f什麼意思,c語言中 1f是什麼意思

把精確度比float資料小的資料型別轉換為float型別,以便於下面的運算 這是c語言中輸出格式控制語句。後面接上的內容是控制變數輸出格式的 f 表示 浮點數 6.1f 就是輸出的變數總共佔6列,其中小數佔一列。1f 你用了數字1,不是字母l的小寫.這個1的意思是輸出 入總位數為1位。參考 floa...