当我在 Visual Studio 2015 中编译时出现错误:错误 C2398:元素“1”:从“double”到“float”的转换需要缩小转换
vector<float> v {2.46, 2.58, 2.0, 2.25, 3.0 };
但这行得通
vector<float> v{ (float)2.46, (float)2.58, (float)2.0, (float)2.25, (float)3.0 };
这段代码是否有一个优雅的解决方案,这样我就不必将所有输入都设置为 float ? 也许调整 initializer_list ?
最佳答案
无耻盗取igor-tandetnik的评论:
vector<float> v {2.46f, 2.58f, 2.0f, 2.25f, 3.0f };
然后补充它使其成为答案:
文字 0.42
的类型为 double。要获得浮点型文字,您需要 f
后缀:0.42f
。
您可以阅读更多关于 integer literals 的内容(好吧……没那么多)和 floating point literals
关于c++11 - 统一初始化期间 vector<float> 错误的初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37947287/