[英]C++ Cout floating point problem
#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?
因為你正在進行s = 10 / 3
10/3的整數除法
嘗試
s = 10.0f / 3.0f
進行常量浮點除法的正確方法是:
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
導致正確的划分。
10/3是整數除法。 你需要使用10.0 / 3或(浮點)10/3或10 / 3.0等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.