【发布时间】: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
我正在使用 unicode 设置构建 C++ MFC 项目,我通常使用函数 _ttof 将 CString 转换为 double,但我找不到使用 TCHAR 的 long double 函数。
提前致谢。
【问题讨论】:
long double 与 double 完全相同
标签: c++ mfc c-strings long-double
使用CString类的Format方法:
CString sNum;
long double fNum = 10.0;
sNum.Format(_T("%f"), fNum);
【讨论】:
您很可能会发现,对于与 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");
【讨论】: