从'double'转换为'float'需要缩小转换范围



我有以下几行代码:

std::vector<float> qualities = { 0.5, 0.6, 0.7, 0.8 };
std::vector<float> percentages = { 0.15, 0.16, 0.17, 0.18 };

我得到了标题中提到的每个元素的错误。为什么?

您之所以得到消息,是因为形式为(例如(0.5的常量是double,而将double分配给float是一种缩小转换。

要解决此问题,请将f附加到每个常量中,例如0.5f

从'double'到'float'的转换需要缩小转换

我得到了每个元素标题中提到的错误。为什么?

因为您正在使用双文本构建浮点向量。这种转变正在缩小。

也就是说,在这种情况下允许这样的转换,并且该示例格式良好,应该进行编译。我怀疑您使用了一些编译器选项来要求编译器不要编译一些格式良好的程序。

您可以通过将f附加到双文本来编写浮点文本。

最新更新