ival应该转换为double类型还是float类型?

这里的ival应该转换为double类型还是float类型?

已知int ival;unsigned int ui; float fval;

在fval = ui - ival * 1.0; 的求解过程中,ival是转换为float类型和1.0相乘,还是直接转换为double类型?

我看网上的答案基本都是:ival由int提升为double,为什么不是int提升为float?float*1.0后不也是double?

C语言中,常量1.0表示为double,如果想用做float,可写成1.0f,而double型,则用1.0lf表示

因为1.0是double类型

1.0是double,已经被固定了。你不能再更改了,然而int类型的 ival还没正式确定可以进行强制转换。

float不是c++标准数据类型,非常不建议使用这个类型,还是使用double吧。而且float类型乘以1.0之后仍然是一位小数不能代替double使用。