【问题标题】:fmt : format a float/double without format stringfmt : 格式化浮点数/双精度而不带格式字符串
【发布时间】:2021-08-02 17:04:54
【问题描述】:

我想使用 fmt 将单个 double/float 格式化为字符串/wstring。 就像是 std::string s = fmt:format_??(my_float);

由于我使用的格式是固定的,有没有一种方法可以使用库而不必使用格式字符串,而是直接提供设置?

我注意到有 format_intformat_float 使用设置结构,这可能是合适的,但它们在详细名称空间内,而且还不清楚如何初始化输入参数。

我的(未经基准测试的)猜测是,避免使用格式字符串会导致更快的转换。

有这方面的想法或经验吗?

谢谢!

【问题讨论】:

    标签: fmt


    【解决方案1】:

    有没有办法不用格式字符串,直接输入设置就可以使用这个库?

    不,但如果格式在编译时已知,您可以使用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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-04
      • 2017-05-20
      相关资源
      最近更新 更多