#include <iostream>
using namespace std;
int main()
{
float s;
s = 10 / 3;
cout << s << endl;
cout.precision(4);
cout << s << endl;
return 0;
}
为什么输出不显示3.333而只显示3 ??
答案 0 :(得分:6)
因为您正在使用s = 10 / 3
尝试
s = 10.0f / 3.0f
答案 1 :(得分:3)
进行常量浮点除法的正确方法是:
s = 10.f / 3.f; // one of the operands must be a float
如果没有f
后缀,您正在执行double
除法,并发出警告(从float
到double
)。
您还可以投射其中一个操作数:
s = static_cast<float>(10) / 3; // use static_cast, not C-style casts
导致正确的分裂。
答案 2 :(得分:2)
10/3是整数除法。您需要使用10.0 / 3或(浮点)10/3或10 / 3.0等