【问题标题】:Simple int to float conversion in c++c++中的简单int到float转换
【发布时间】:2014-04-30 15:51:06
【问题描述】:

我的函数“inverzMatrika”返回一个 int 类型的变量。我需要将其转换为浮点数。有什么建议吗?

float inverz;
inverz = (float)(inverzMatrika(matrika));

【问题讨论】:

  • 算术类型之间的转换是隐式的。 float inverz = inverzMatrika(matrika); 就是这样。

标签: c++ floating-point int


【解决方案1】:

使用static_cast,不要使用C风格的演员表

float inverz = static_cast<float>(inverzMatrika(matrika));

【讨论】:

  • 它仍然没有将其转换为浮点值。我已经尝试了你所有的建议。也许我忘了提到,如果它很重要,值也可以是负数。
【解决方案2】:

试试

 double inverz;
 inverz=  (double )(inverzMatrika(matrika));

或者

float inverz = static_cast<float>(inverzMatrika(matrika));

【讨论】:

    【解决方案3】:

    您不必担心这种转换,因为它将由编译器隐式处理。我们不会丢失从 int 转换为 float 的数据,因此这里不需要显式类型转换技巧。

    【讨论】:

    • “我们不会丢失从 int 到 float 转换的数据”我想我们会。尝试将 32 位 int 类型的 INT_MAX 转换为 IEEE 754 binary32 float
    猜你喜欢
    • 2021-01-13
    • 2016-09-01
    • 2011-09-28
    • 2018-03-11
    • 2017-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多