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