函式
<cwchar>

wcstold

long double wcstold (const wchar_t* str, wchar_t** endptr);
將寬字串轉換為 long double
解析 C 寬字串 str,將其內容解釋為浮點數,並以long double型別返回其值。如果 endptr 不是空指標,則該函式還會將 endptr 的值設定為指向數字後面的第一個字元。

這是 strtold (<cstdlib>) 的寬字元等價函式,以相同方式解釋 str

引數

str
以浮點數表示形式開頭的 C 寬字串。
endptr
對一個已分配的wchar_t*型別物件的引用,函式會將其值設定為 str 中數值部分之後的下一個字元。
該引數也可以是一個空指標,此時它將不被使用。

返回值

成功時,函式返回轉換後的浮點數,型別為long double.
如果無法執行有效的轉換,則函式返回零(0.0L).
如果正確的值超出了該型別可表示值的範圍,則返回一個正或負的 HUGE_VALL,並將 errno 設定為 ERANGE
如果正確的值會導致下溢,則函式返回一個絕對值不大於最小規格化正數的數值(某些庫的實現在這種情況下也可能將 errno 設定為 ERANGE)。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
/* wcstold example */
#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;
}

輸出
Pluto takes 248.09 years to complete an orbit.


另見