将wchar_t转换为c ++中的float

时间:2014-02-22 01:30:21

标签: c++ typeconverter wchar-t

有没有更好的方法将wchar_t转换为float?我只发现了一种实际有效的解决方案。

wchar_t buf = GetText(); // GetText() returns a wchar_t
float fNumber1 = _wtof(&buf);

我也尝试了以下失败:

float fNumber1 = (float)GetText(); // returns the ascii code

float fNumber1 = _wtof(&GetText();

float fNumber1 = _wtof(&(GetText())); 

1 个答案:

答案 0 :(得分:0)

#include <wchar.h>

int main ()
{
  wchar_t szOrbits[] = L"90613.305 365.24";
  wchar_t * pEnd;
  long double f1, f2;
  f1 = wcstold (szOrbits,&pEnd);
  f2 = wcstold (pEnd,NULL);
  wprintf (L"Pluto takes %.2Lf years to complete an orbit.\n", f1/f2);
  return 0;
}