gpt4 book ai didi

c++ double to string 显示 float

转载 作者:行者123 更新时间:2023-11-28 07:31:56 24 4
gpt4 key购买 nike

我有一个字符串:(66)

然后我将其转换为 double 并进行一些计算:atof(t.c_str()) / 30

然后我将它转换回字符串:string s = boost::lexical_cast<string>(hizdegerd)

问题是当我在标签上显示它时,它变成了 2,20000001。

我已经尝试了一切。 sprintf 等

我只想在点后显示一位数字。

hizdegerd = atof(t.c_str()) / 30;
char buffer [50];
hizdegerd=sprintf (buffer, "%2.2f",hizdegerd);
if(oncekideger != hizdegerd)
{

txtOyunHiz->SetValue(hizdegerd);

oncekideger = hizdegerd;
}

最佳答案

我想我应该将格式包装到函数模板中,如下所示:

#include <iostream>
#include <sstream>
#include <iomanip>

template <class T>
std::string fmt(T in, int width = 0, int prec = 0) {
std::ostringstream s;
s << std::setw(width) << std::setprecision(prec) << in;
return s.str();
}

int main(){
std::string s = fmt(66.0 / 30.0, 2, 2);
std::cout << s << "\n";
}

关于c++ double to string 显示 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17488707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com