共用方式為


_fcvt_s

轉換浮點數值至字串。 這是 _fcvt 的安全性強化版本,如 CRT 中的安全性功能 所述。

errno_t _fcvt_s( 
   char* buffer,
   size_t sizeInBytes,
   double value,
   int count,
   int *dec,
   int *sign 
);
template <size_t size>
errno_t _fcvt_s( 
   char (&buffer)[size],
   double value,
   int count,
   int *dec,
   int *sign 
); // C++ only

參數

  • [out] buffer
    所提供的緩衝區將保留轉換的結果。

  • [in] sizeInBytes
    緩衝區的大小 (以位元組為單位)。

  • [in] value
    被轉換的數字。

  • [in] count
    小數點後的位數。

  • [out] dec
    要儲存的小數點位置的指標。

  • [out] sign
    要儲存的標記指標的指標。

傳回值

如果成功,則為零。 如果發生失敗,則傳回值為錯誤碼。 錯誤碼在 Errno.h 中定義。 如需這些錯誤的清單,請參閱 errno、_doserrno、_sys_errlist 和 _sys_nerr

在無效的參數的情況下,如下表所示,這個函式叫用無效的參數處理常式,如 參數驗證中所述。 如果允許繼續執行,函式將 errno 設置為 EINVAL 並回傳 EINVAL 。

錯誤狀況

buffer

sizeInBytes

count

dec

sign

傳回

在 buffer 的值

NULL

any

any

any

any

any

EINVAL

未修改。

不是 NULL (指向有效的記憶體)

<=0

any

any

any

any

EINVAL

未修改。

any

any

any

any

NULL

any

EINVAL

未修改。

any

any

any

any

any

NULL

EINVAL

未修改。

安全性問題

如果 buffer沒有指向有效的記憶體且不是 NULL , _fcvt_s 會發生存取被拒。

備註

_fcvt_s 函式將浮點數轉換成空的終止字串。 value 參數是要轉換的雙精確度浮點數。 _fcvt_s 中 value 數值為字串並將 null 字元 (「\ 0 」)。 count參數指定小數點之後需要倍儲存的位數。 剩餘數字四捨五入到 count 位元。 如果精準度小於 count 的數字,字串填補零。

只有數值資料儲存。 小數點的位置與 value 的符號可以從 dec 和 sign 取得在呼叫之後。 dec 參數指向一個整數值;此整數值告知小數點位置與字串的開頭。 0 或負整數值表示小數點在第一個數字左邊加入水平軸。 表示 value的正負號整數參數的 sign 。 整數設為 0,如果 value 為正值且設為非零值,如果 value 是負值。

足夠容納任何浮點數值的 _CVTBUFSIZE 長度的緩衝區。

在 _ecvt_s 和 _fcvt_s 的差異在於 count 參數的說明。 _ecvt_s將count解譯為輸出字串的數值總數,而且_fcvt_s 將count解譯為小數點之後的數值數。

在 C++ 中,此函式的使用被簡化為使用樣板多載。使用多載可以自動推斷緩衝區的大小而不必在參數中指明大小。 如需詳細資訊,請參閱安全範本多載

此函式的偵錯版本會先將緩衝區填入 0xFD 。 若要停用此行為,請使用 _CrtSetDebugFillThreshold

需求

功能

必要的標頭

選擇性標頭

_fcvt_s

<stdlib.h>

<errno.h>

如需詳細資訊,請參閱介紹中的 相容性

程式庫: CRT 程式庫功能的所有版本。

範例

// fcvt_s.c
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>

int main()
{
  char * buf = 0;
  int decimal;
  int sign;
  int err;

  buf = (char*) malloc(_CVTBUFSIZE);
  err = _fcvt_s(buf, _CVTBUFSIZE, 1.2, 5, &decimal, &sign);
  
  if (err != 0)
  {
     printf("_fcvt_s failed with error code %d\n", err);
     exit(1);
  }

  printf("Converted value: %s\n", buf);  
  
}
  

.NET Framework 對等用法

ToString

請參閱

參考

資料轉換

浮點支援

atof、_atof_l、_wtof、_wtof_l

_ecvt_s

_gcvt_s

_fcvt