我有一个函数,用于获取输入双精度数的固定数字字符串。
函数是:
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)