将浮点数四舍五入到小数点后一位,然后转换为字符串

Rounding a float to one decimal place then convert to a string

我有这个:

#include <iostream>
#include <iomanip> 

std::string ExampleInstance::RoundNumber(float result) {

    std::string RoundResult;

    std::cout << std::fixed << std::showpoint;
    std::cout << std::setprecision(1);
    std::cout << result << std::endl;

    RoundResult = std::to_string(result);
    return RoundResult;
}

我想向这个方法传递一个浮点数,将它四舍五入到小数点后一位,将其转换为字符串,然后 return。目前这对数字没有任何作用。

setPrecision 会更有效吗?我是 C++ 新手。

您可以使用 ostringstream 来达到这个目的。不要忘记包括 <sstream>

代码片段:

string RoundNumber(float result)
{
    std::ostringstream out;
    out<<std::setprecision(1)<<std::fixed<<std::showpoint<< result;
    std::string RoundResult =  out.str();
    return RoundResult;
}