繁体   English   中英

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

[英]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 :: 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因为该流仅用于输出。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM