【问题标题】:Converting long double to CString将 long double 转换为 CString
【发布时间】:2015-08-23 23:17:38
【问题描述】:

我正在使用 unicode 设置构建 C++ MFC 项目,我通常使用函数 _ttof 将 CString 转换为 double,但我找不到使用 TCHAR 的 long double 函数。

提前致谢。

【问题讨论】:

  • 如果您使用的是 MSVC,long double 与 double 完全相同

标签: c++ mfc c-strings long-double


【解决方案1】:

使用CString类的Format方法:

CString sNum;
long double fNum = 10.0;
sNum.Format(_T("%f"), fNum);

【讨论】:

    【解决方案2】:

    您很可能会发现,对于与 Microsoft 基础类相关的目标,long double 和 double 的大小相同。

    因此,为了安全起见,您可以使用静态断言 sizeof(double) == sizeof(long double) 构建自己的函数存根(调用 _ttof):

    static_assert(sizeof(double) == sizeof(long double), "double and long double are not the same size");

    【讨论】:

      猜你喜欢
      • 2011-11-23
      • 1970-01-01
      • 1970-01-01
      • 2021-12-03
      • 2013-01-20
      • 2010-10-29
      • 2014-02-02
      • 1970-01-01
      • 2014-09-30
      相关资源
      最近更新 更多