C++基础知识 - 浮点类型
需要精確計(jì)算的數(shù)學(xué)、工程應(yīng)用,用整數(shù)類型不合適。
float類型(單精度浮點(diǎn)類型)
用來存儲(chǔ)帶小數(shù)部分的數(shù)據(jù)。
在內(nèi)存中占用4個(gè)字節(jié)
表示范圍:-3.4*1038~+3.4*1038 (不需記憶)
精度:最長7位有效數(shù)字(是指7位10進(jìn)制位)
float類型的存儲(chǔ)方式:
符號(hào)位:0代表正數(shù),1代表負(fù)數(shù)
階碼: 指數(shù)+127
符號(hào)位 尾數(shù) * 2 ^ (階碼-127)
轉(zhuǎn)化過程:(僅做了解)
float x = 13.625;
13.625 的轉(zhuǎn)化:
- 13 -> 1101
- 倒除法:
-
625 -> .101
-
0.625 * 2 = 1.25 取整 1 ,剩下0.25
-
0.25 * 2 = 0.5 取整 0 , 剩下0.5
-
0.5 * 2 = 1 取整 1 ,剩下0
-
按順序得到 101(直到小數(shù)部分為0)
-
13.625 => 1101.101
-
1101.101 小數(shù)點(diǎn)向左移動(dòng)3位 => 1.101101
-
(要求移動(dòng)到整數(shù)部分只有1位)
-
所以,階碼 = 3 + 127 = 130
-
二進(jìn)制形式為:10000010
-
移位后的小數(shù)部分是 .101101
-
尾數(shù)存儲(chǔ)二進(jìn)制的101101
-
實(shí)際存儲(chǔ)為:
?
?
?
double類型(雙精度浮點(diǎn)類型)
用來存儲(chǔ)帶小數(shù)部分的數(shù)據(jù)。
8個(gè)字節(jié)
具體的存儲(chǔ)方式和float相似.
表示范圍:-1.7*10308~1.7*10308(不需記憶)
精度:最長16位有效數(shù)字(是指16位10進(jìn)制位)
double y = 1.12345678901;
浮點(diǎn)類型的常量
帶小數(shù)的常量默認(rèn)都是double類型
3.14 是double類型
3.14f 強(qiáng)制指定是float類型
可以用”科學(xué)計(jì)數(shù)法”表示浮點(diǎn)類型的常量
1.75E5 或 1.75 e5
1.75E5就是1.75乘以10的5次方(100000), 175000.0
注意:
1 是int類型的常量
1.0 是double類型的常量
?
?
浮點(diǎn)數(shù)據(jù)的輸出控制
#include <iostream> #include <Windows.h>using namespace std;int main(void) {double value = 12.3456789;// 默認(rèn)情況下, 只輸出6位有效數(shù)字(包含小數(shù)點(diǎn)前面的數(shù)據(jù))cout << "默認(rèn)輸出: " << value << endl; // 輸出結(jié)果 12.3457(最后一位四舍五入)// 指定輸出的精度cout.precision(4); // 包含小數(shù)點(diǎn)前面的數(shù)據(jù)cout << "指定精度: " << value << endl; // 輸出結(jié)果 12.35(最后一位四舍五入)// 輸出小數(shù)點(diǎn)后面指定的精度cout.precision(7);cout.flags(cout.fixed); //定點(diǎn)法cout << "定點(diǎn)輸出: " << value << endl; // 輸出結(jié)果 12.3456789// 取消定點(diǎn)法cout.unsetf(cout.fixed);cout << "取消定點(diǎn): " << value << endl; //輸出結(jié)果 12.34568system("pause");return 0; }總結(jié)
以上是生活随笔為你收集整理的C++基础知识 - 浮点类型的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: dw 用html修改文字样式,Dream
- 下一篇: s3c2440移植MQTT