cpp-浮点数
比较
if (fabs(m1 - m2) < DBL_EPSILON) |
精度
以一个四字节整数int n;为例,一共有32位,取值范围是 [-2147483648, 2147483647] ,一共是4,294,967,296种可能
float 7位小数精度 使用 4 字节存储
double 16位小数精度 使用 8 字节存储
float的存储正是将4字节32位划分为了3部分来分别存储正负号,小数部分和指数部分的:
- Sign(1位):用来表示浮点数是正数还是负数,0表示正数,1表示负数。
- Exponent(8位):指数部分。即上文提到数字c,但是这里不是直接存储c,为了同时表示正负指数以及他们的大小顺序,这里实际存储的是c+127。
- Mantissa(23位):尾数部分。也就是上文中提到的数字b。