如何将 int 除法转换为浮点数?

问题描述 投票:0回答:3
#include <iostream>
#include <stdio.h>
using namespace std;
 
int main() {
 
 float f=static_cast<float>(5/2);
 printf("%f",f);
 
 return 0;
}

答案始终是2.0。 我问之前搜索过但找不到答案。

c++ static-cast
3个回答
3
投票

你只需要做

float f = 5.0f / 2;

在您的代码中,

5
2
int
,因此在
5/2
中,
/
运算符是整数除法运算符;结果始终是整数,在本例中为
2
。只有这样它才会转换为
float
,给出
2.0

需要进行浮点除法,因此至少有一个操作数需要是浮点类型。您可以只写

5.0
,而不使用
f
,但默认情况下会有类型
double
,然后结果将转换为
float
- 这种转换可能会导致问题(这里不针对这些特定常量)值,但是,最好首先使用正确的类型)。


1
投票
int main() {

    float f = 5.0 / 2;
    printf("%f", f);
    return 0;
}

0
投票

这适用于我的编译器:

#include <iostream>
#include <stdio.h>
using namespace std;

int main() {

 float f=(float)5/(float)2;
printf("%f",f);

return 0;
}
© www.soinside.com 2019 - 2024. All rights reserved.