这里是我的问题:我想在一个字符串中写一个最多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)
的原因。
我真的在互联网上搜索类似的问题,但发现没有一个适合我的。
答案 0 :(得分:5)
将std::stringstream和std::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
,因为流仅用于输出。