如何解决fmt :格式化没有格式字符串的浮点数/双精度数
我想使用 fmt 将单个双精度/浮点数格式化为字符串/wstring。 就像是 std::string s = fmt:format_??(my_float);
由于我使用的格式是固定的,有没有一种方法可以使用库而不必使用格式字符串,而是直接输入设置?
我注意到有 format_int 和 format_float 使用设置结构,这可能是合适的,但这些都在 detail 命名空间内,也不太清楚如何初始化输入参数。
我(未经基准测试)的猜测是避免格式字符串会导致更快的转换。
在这方面有什么想法或经验吗?
谢谢!
解决方法
有没有办法不用格式字符串就可以使用库,直接输入设置?
不可以,但如果格式在编译时已知,您可以使用 format string compilation,它完全消除了处理格式字符串的运行时开销,无论它有多小。例如:
std::string s = fmt::format(FMT_COMPILE("{}"),42);
是将数字转换为 std::string
的最快方法(还有 fmt::to_string
等价的):https://www.zverovich.net/2020/06/13/fast-int-to-string-revisited.html。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。