c语言%f小数位第六位是错的,c语言中输出浮点型数据,如果不指定输出位数,%f输出几位小数?...
%f :以浮點型數據形式輸出,浮點型也就是實數。一共保留6位小數,%f表示實數,保留6位小數,輸出float類型的值,小數位數不固定,只是有效位數是7位,輸出格式也不一定,不同編譯器不一樣,比如很多編譯器會自動消除小數點之后的,位于最后的那些0,其類型說bai明符為float 單精度說明du符,zhidouble 雙精度說明符。在Turbo C中單dao精度型占4個字節(專32位)內存空間,其數屬值范圍為3.4E-38~3.4E+38,只能提供七位有效數字。雙精度型占8 個字節(64位)內存空間,其數值范圍為1.7E-308~1.7E+308,可提供16位有效數字。float a;double b;a=33333.33333;b=33333.33333333333333; 從本例可以看出,由于a 是單精度浮點型,有效位數只有七位。而整數已占五位,故小數二位后之后均為無效數字。b 是雙精度型,有效位為十六位。但Turbo C 規定小數后最多保留六位,其余部分四舍五入,6位www.mh456.com防采集。
準確的說是輸出有效位是七位更多追問追答追答而不能說小數點后幾位,應該看有效數字的位數追問
如果就是以%f輸出的話,一般編譯系統輸出六位小數. 如果你在前面加上數字,例如 float a; a=3.52; printf("a=%7.3f",a); 的運行結果為a= 3.520 %7.3f即輸出3位小數,整個數字占7位,如上述程序3.520共5位數字,前面補兩個空格.
第四個追答有問題嗎追問
需要注意,%f如果沒有規定長度或小數位數的話,就是輸出6位小數 不論對應的數是什么類型,都輸出6位小數 因為你的x是4位小數,少于6位 所以會在后面加兩位小數補齊,至于那兩位數是什么,要看后面的內存單元中存的是什么 (C語言會出現意外的內存
這個最后一個就輸出六位小數,上面那個為什么只輸出三位小數追答你把最后一個圖拍全一點追問就是表格的最后一條追答我明白你什么意思了追問嗯,那為什么不一樣呢?追答第一個應該是
printf("%f",fVal);//這是浮點默認輸出格式,小數點保留6位 printf("%.1f",fVal);//.1是說明,小數點保留1位,對其后的數據進行四舍五入 printf("%.2f",fVal);//.2是說明,小數點保留2位,對其后的數據進行四舍五入,你想保留幾位,就用點幾 pri
實際代碼出來的效果可以看到我的圖片嗎追問但是你是lf輸出的如果按f呢追答
輸入時float 用 %f, double 用 %lf, 這是約定(規定)。數據可以用定點格式,也可以 E 格式。 輸出float 用 %f, double 可以用 %lf, 也可以用 %f, 這將按默認 定點格式輸出。沒給 場寬和小數位數 時 按 默認位數輸出。 若給了 場寬和小數位數 時
看得到嗎追問看到了是書上的有問題嗎追答恩其實關于f,只能保證七位有效數字所以你看到最后多了一個一對吧七位之后是不保證數據的正確性的追問嗯,謝謝,我會采納的,還能再問你一個問題嗎?追答私信吧本回答被提問者采納
不是 你可以試試%.4f 意思就是保留4位小數 ;%.0f就是整數了。
一般情況是6位。更多追問追答追問
第四個為什么不是六位追答書上弄錯了。
內容來自www.mh456.com請勿采集。
總結
以上是生活随笔為你收集整理的c语言%f小数位第六位是错的,c语言中输出浮点型数据,如果不指定输出位数,%f输出几位小数?...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【c语言训练】大,小写问题,【C语言训练
- 下一篇: keil c语言 1602时钟代码,带详