5

float 値を小数点以下 1 桁に丸める方法を教えてください。

私は知っsetprecision(x)cout << precision(x)います。フロート全体を丸めたい場合はどちらも機能しますが、小数点以下を 10 分の 1 に丸めることにのみ関心があります。

4

3 に答える 3

10

int へのキャストを必要としない別の解決策があります。

#include <cmath>

y = floor(x * 10d) / 10d
于 2012-08-24T05:30:23.510 に答える
8
#include <cmath>

int main() {
    float f1 = 3.14159f;
    float f2 = 3.49321f;
    std::cout << std::floor(f1 * 10 + 0.5) / 10 << std::endl; 
    std::cout << std::floor(f2 * 10 + 0.5) / 10 << std::endl;
    std::cout << std::round(f1 * 10) / 10 << std::endl; // C++11
    std::cout << std::round(f2 * 10) / 10 << std::endl; // C++11
}
于 2012-08-24T05:33:55.287 に答える
0

あなたはこれを行うことができます:

int main()
{

    float a = 4212.12345f;
    float b = a * 10.0f;
    float c = ((int)b) / 10.0f;

    cout << c << endl;
    return 0;
}
于 2012-08-24T05:28:42.380 に答える