小编nic*_*ick的帖子

std::format 精度必须是 constexpr?

我有一个函数,用于获取输入双精度数的固定数字字符串。

函数是:

std::string to_fixed_string(double s, size_t n) {
  char buff[64];
  snprintf(buff, sizeof(buff), ("%." + std::to_string(n) + "f").c_str(), s); 
  return buff;
}
Run Code Online (Sandbox Code Playgroud)

最近我正在使用std::format,最重要的原因是std::format比snprintf更快。

但我发现 constexpr 限制使得这个函数不起作用。

有没有更有效的方法来实现这个功能?

例子是:

func(1.123123131, 3) -> "1.123"
func(1.123123131, 5) -> "1.12312"
Run Code Online (Sandbox Code Playgroud)

c++ c++20

0
推荐指数
1
解决办法
89
查看次数

标签 统计

c++ ×1

c++20 ×1