C ++浮点到具有特定长度的字符串

时间:2017-09-07 06:28:30

标签: c++

这里是我的问题:我想在一个字符串中写一个最多2个小数位的浮点数并打印出来,而不是数字后面的几个0。

我现在这样做的方式:

return new RenderPageRequestHandler(new PageProvider(AccessDeniedPage.class), RedirectPolicy.NEVER_REDIRECT);

打印出来:15.56000000

Values Material; // Class 'Values', Object 'Material' Material.Temp = 15.56; // 'Temp' = float string ss = to_string(Material.Temp); // Conversion to string const char* cNumber = ss.c_str(); // Conversion to const char HPDF_Page_ShowText(page, cNumber); 是开源库libharu的命令,用于创建PDF文档。它期望HPDF_Page_ShowText。这就是为什么首先必须将字符串转换为(page-object, *const char)的原因。

我真的在互联网上搜索类似的问题,但发现没有一个适合我的。

1 个答案:

答案 0 :(得分:5)

std::stringstreamstd::setprecision()功能与std::fixed流操作器结合使用:

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

int main(){
    float myfloat = 15.56f;
    std::stringstream ss;
    ss << std::fixed << std::setprecision(2) << myfloat;
    std::string s = ss.str();
    std::cout << s;
}

const char*变量可以通过以下方式获得:

const char* c = s.c_str();

更新:
首选std::ostringstream,因为流仅用于输出。