要点:
float:32位
double 64 位
long double 96 或者128位
标准认为:
float 至少为6位有效数字。
double 至少为10位有效数字。
long double 至少10位有效数字。
要点:
1.double 类型比float类型的计算要快。
2.对于浮点型,没有严格意义上的相等,因此比较是否相等,请用if(fabs(a-b)<0.00001);
2的10次方是1K,20次是1M,30次是1T
因此2的16次方是64000,2的17次方是128000;因此我认为应该至少用7位来表示小数点后面的数字。
#include <cstdlib> #include <iostream> using namespace std; int main(int argc, char *argv[]) { float a=0.111 111 91111111111111111111111111; cout<<a<<endl; system("PAUSE"); return EXIT_SUCCESS; }
打印结果为:
0.111 112
所以说。。最后一位是不精确的。
因此。。比较的时候应该将其舍去。。
取前5位比较:最后一位应该忽略之。
bool compare(){
if(a-b>0.000 01) return true;
};
