C語言中的浮點(diǎn)數(shù)據(jù)類型
1. 處理帶小數(shù)的數(shù)值
我們來討論一下類似于1.234567,0.00001,這類非整數(shù)的數(shù)據(jù)。我們先試試看,int能不能裝這些數(shù)據(jù)呢?
#include <stdio.h>
int main()
{
int a = 1.234567;
int b = 0.00001;
int c = 365.12345;
printf("%d\n", a);
printf("%d\n", b);
printf("%d\n", c);
return 0;
}

好像不太行,小數(shù)部分都丟失了。那怎么辦呢?我們需要引入新的類型了。
2. 浮點(diǎn)類型
我們把上面的代碼中int,用float替代。
printf("%d\n",a);中的占位符%d,我們知道%d是用于整數(shù)的,因此%d肯定是不行的。所以我們用%f替換。
#include <stdio.h>
int main()
{
float a = 1.234567;
float b = 0.00001;
float c = 365.12345;
printf("%f\n", a);
printf("%f\n", b);
printf("%f\n", c);
return 0;
}

這時(shí)我們發(fā)現(xiàn),大部分的數(shù)據(jù)都對(duì)了,但是365.12345變成了365.123444。是的,浮點(diǎn)數(shù)不能表示無限的精確,它有一定的誤差。并且注意,這個(gè)誤差并不是四舍五入的。
C標(biāo)準(zhǔn)規(guī)定,float類型必須至少能表示6位有效數(shù)字,并且取值范圍至少是10^-37~10+37。
那有沒有精度更高的float類型呢?有的,叫做雙精度浮點(diǎn)型,double。我們把上面的代碼中的float換成double,%f依然不變。
#include <stdio.h>
int main()
{
double a = 1.234567;
double b = 0.00001;
double c = 365.12345;
printf("%f\n", a);
printf("%f\n", b);
printf("%f\n", c);
return 0;
}

這下365.12345對(duì)的上了。但是,請(qǐng)注意double類型也是有精度范圍的。如果更高精度的數(shù)據(jù),double也會(huì)出現(xiàn)誤差。我們?nèi)粘5膽?yīng)用中,不會(huì)苛求一個(gè)精度完美的數(shù)值,是會(huì)允許存在一定誤差范圍的。但是,如果涉及金融等精度關(guān)鍵的領(lǐng)域計(jì)算時(shí)。請(qǐng)參照相關(guān)的處理精度關(guān)鍵數(shù)值的文檔,不能簡(jiǎn)單的使用float和double。
3. 浮點(diǎn)類型的sizeof
接下來,我們用sizeof來測(cè)量一下float,和double都占用了多少字節(jié)大小吧。

float為4,double為8。
sizeof測(cè)量的結(jié)果,是一個(gè)整數(shù),表示所占用的字節(jié)大小。字節(jié)數(shù)哪有1.5的字節(jié)的。所以這里用%d來打印。
到此這篇關(guān)于C語言中的浮點(diǎn)數(shù)據(jù)類型的文章就介紹到這了,更多相關(guān)C語言浮點(diǎn)數(shù)據(jù)類型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(100.判斷相同樹)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(100.判斷相同樹),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
C/C++實(shí)現(xiàn)枚舉網(wǎng)上鄰居信息的示例詳解
在Windows系統(tǒng)中,通過網(wǎng)絡(luò)鄰居可以方便地查看本地網(wǎng)絡(luò)中的共享資源和計(jì)算機(jī),本文將介紹一個(gè)簡(jiǎn)單的C++程序,使用Windows API枚舉網(wǎng)絡(luò)鄰居信息,并獲取對(duì)端名稱、本機(jī)名稱、主機(jī)名稱以及主機(jī)IP等信息,文中通過代碼示例給大家講解非詳細(xì),需要的朋友可以參考下2023-12-12
C語言如何實(shí)現(xiàn)一些算法或者函數(shù)你知道嗎
這篇文章主要為大家詳細(xì)介紹了C語言實(shí)現(xiàn)一些算法或者函數(shù),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2022-03-03
有關(guān)C++中隨機(jī)函數(shù)rand() 和srand() 的用法詳解
下面小編就為大家?guī)硪黄嘘P(guān)C++中隨機(jī)函數(shù)rand() 和srand() 的用法詳解。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-01-01
C語言 動(dòng)態(tài)內(nèi)存分配的詳解及實(shí)例
這篇文章主要介紹了C語言 動(dòng)態(tài)內(nèi)存分配的詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2016-09-09
C++實(shí)現(xiàn)LeetCode(241.添加括號(hào)的不同方式)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(241.添加括號(hào)的不同方式),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07
Qt5中QML自定義環(huán)形菜單/環(huán)形選擇框的實(shí)現(xiàn)
本文主要介紹了Qt5中QML自定義環(huán)形菜單/環(huán)形選擇框的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-03-03

