Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/129.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将整型除法转换为浮点? #包括 #包括 使用名称空间std; int main(){ 浮子f=静态_铸造(5/2); printf(“%f”,f); 返回0; }_C++_Static Cast - Fatal编程技术网

C++ 如何将整型除法转换为浮点? #包括 #包括 使用名称空间std; int main(){ 浮子f=静态_铸造(5/2); printf(“%f”,f); 返回0; }

C++ 如何将整型除法转换为浮点? #包括 #包括 使用名称空间std; int main(){ 浮子f=静态_铸造(5/2); printf(“%f”,f); 返回0; },c++,static-cast,C++,Static Cast,答案总是2.0。 我在询问之前搜索了一下,但找不到答案。你只需要这样做 #include <iostream> #include <stdio.h> using namespace std; int main() { float f=static_cast<float>(5/2); printf("%f",f); return 0; } 在代码中,5和2是ints,因此在5/2中,/运算符是整数除法运算符;结果将始终是一个整数,在本例中为2。只有这样

答案总是2.0。 我在询问之前搜索了一下,但找不到答案。

你只需要这样做

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

int main() {

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

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


您需要进行浮点除法,因此至少有一个操作数需要为浮点类型。您可以只编写
5.0
,而不使用
f
,但默认情况下,类型为
double
,然后结果将转换为
float
——这种转换可能会导致问题(这里不适用于这些特定的常量值,但最好首先使用正确的类型).

这适用于我的编译器:

int main() {

    float f = 5.0 / 2;
    printf("%f", f);
    return 0;
}
#包括
#包括
使用名称空间std;
int main(){
浮动f=(浮动)5/(浮动)2;
printf(“%f”,f);
返回0;
}

在强制转换为
浮点之前,您正在执行整数除法,因此您正在强制转换整数除法的结果。如果要进行浮点除法,首先需要对浮点值进行除法。
printf
not period中的逗号。
int main() {

    float f = 5.0 / 2;
    printf("%f", f);
    return 0;
}
#include <iostream>
#include <stdio.h>
using namespace std;

int main() {

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

return 0;
}