double所占存储空间更大,8字节,所以能表示的值的范围更大
int 只有4个字节, 表示的范围是1~2147483647(带符号的整数)
举例 int带符号 整数:
1的原码为 0000 0000 0000 0000 0000 0000 0000 0001(2的0次方*1=1)
2147483647原码为 0111 1111 1111 1111 1111 1111 1111 1111(S30+1)
拓展、二进制转化十进制方法:
等比数列求和,Sn = a1(q的n次方 - 1) / (q - 1)
所以除了符号位 其余31位全是1的十进制值为(2的n次方 - 1),即(2的31次方 - 1)
double值转换到int值,会进行四舍五入,会有精度损失。