double精度高,有效數字15-16位,float精度低,有效數字6-7位,但是double消耗的記憶體是float的兩倍,運算速度比float慢得多,建議能用float保證精度的就用float,少用double。

#include <iostream>

#include <iomanip>

using namespace std;

int main()

{

float a=12.257902012398877;

double b=12.257902012398877;

const float PI=3.1415926;   //常量定義

cout<<setprecision(15)<<a<<endl;  //只有6-7位有效數字,後面的就不精確

cout<<setprecision(15)<<b<<endl;  //15-16位有效數字,所以完全正確

cout<<setprecision(15)<<PI<<endl; 

return 0;

}

.