float val = 10;
//а не float val = 10.0f;
毕竟,默认情况下,整数值被赋予类型 int、short 等(取决于大小)。并具有默认的双精度浮点数。如果我们想更改默认类型,只需在数字末尾指定后缀即可。那为什么在将整数类型赋值给浮点类型时不能指定呢?
float val = 10;
//а не float val = 10.0f;
毕竟,默认情况下,整数值被赋予类型 int、short 等(取决于大小)。并具有默认的双精度浮点数。如果我们想更改默认类型,只需在数字末尾指定后缀即可。那为什么在将整数类型赋值给浮点类型时不能指定呢?
关键是,如果一个类型
T可以无损地转换为另一个类型T2,那么很可能存在隐式转换T2(T v)。转换int为 时,float不会丢失任何数据(任何可以用 形式表示的数字int也可以用 形式表示float)。但是,不可能float隐式转换;有一个显式int转换:当转换
float为时,int我们会损失小数部分,因此我们需要明确表明我们了解所有损失并愿意接受它们。您还可以为您的类型定义显式和隐式转换。