[英]C++ float to string with specific length
这是我的问题:我想将最多2个小数位的浮点数写入字符串,并打印该数字,且数字后面不要有0。
我目前的做法是:
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);
打印输出:15.56000000
HPDF_Page_ShowText
是开源库libharu的命令,用于创建PDF文档。 它期望(page-object, *const char)
。 这就是为什么必须先将字符串转换为const char*
。
我确实在互联网上搜索了类似的问题,但没有一个适合我。
将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
因为该流仅用于输出。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.