簡體   English   中英

C ++ Cout浮點問題

[英]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分割,發出警告(從floatdouble )。

您還可以投射其中一個操作數:

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM