double f_64 = 3.35f;
double f1_64 = 3.35;
如果使用后缀'f'会有什么效果?
对于在线FPU编译器,十六进制结果如下
后缀为f
-0x400ACCCCC0000000
,
不带后缀f
-0x400ACCCCCCCCCCCD
。
答案 0 :(得分:1)
后缀f
强制编译器将值视为float
,而不是double
,在下面的赋值中没有多大意义。
double f_64 = 3.35f;
// Why force a value to float when you've allocated memory for a double
请记住,double
is是float
精度的2倍。根据您的特定需求选择类型。
但是,说,你在做
float ans;
ans = 3/2; // ans is trimmed to an int
ans = 3/2.0f; // The decimals are retained