GetNumberFormatA 関数 (winnls.h)

識別子で指定されたロケールに合わせてカスタマイズされた数値文字列として数値文字列を書式設定します。

メモ 相互運用性の理由から、Microsoft は新しいロケールのロケール識別子ではなくロケール名の使用に移行するため、アプリケーションは GetNumberFormatEx 関数を GetNumberFormat に優先する必要があります。 Windows Vista 以降でのみ実行されるアプリケーションでは 、GetNumberFormatEx を使用する必要があります。
 

構文

int GetNumberFormatA(
  [in]            LCID             Locale,
  [in]            DWORD            dwFlags,
  [in]            LPCSTR           lpValue,
  [in, optional]  const NUMBERFMTA *lpFormat,
  [out, optional] LPSTR            lpNumberStr,
  [in]            int              cchNumber
);

パラメーター

[in] Locale

ロケール を指定するロケール識別子。 MAKELCID マクロを使用してロケール識別子を作成するか、次のいずれかの定義済み値を使用できます。

[in] dwFlags

関数の操作を制御するフラグ。 lpFormatNULL に設定されていない場合、アプリケーションはこのパラメーターを 0 に設定する必要があります。 この場合、関数は、ユーザーオーバーライドを使用して文字列の書式をロケールの既定の数値形式に設定します。 lpFormatNULL に設定されている場合、アプリケーションはLOCALE_NOUSEROVERRIDEを指定して、指定したロケールのシステムの既定の数値形式を使用して文字列を書式設定できます。

注意 ユーザー設定が無効になっているため、LOCALE_NOUSEROVERRIDEの使用は強くお勧めしません。
 

[in] lpValue

書式設定する数値文字列を含む null で終わる文字列へのポインター。 この文字列には、次の文字のみを含めることができます。 その他の文字はすべて無効です。 lpValue で示される文字列がこれらの規則から逸脱した場合、関数はエラーを返します。

  • 文字 "0" から "9" まで。
  • 数値が浮動小数点値の場合は、1 つの小数点 (ドット)。
  • 数値が負の値の場合は、最初の文字位置のマイナス記号。

[in, optional] lpFormat

数値書式情報を含む NUMBERFMT 構造体へのポインター。すべてのメンバーが適切な値に設定されています。 このパラメーターが NULL に設定されていない場合、関数は、構造体で指定されていない書式設定情報 (たとえば、負の符号のロケール固有の文字列値) にのみロケールを使用します。

[out, optional] lpNumberStr

この関数が書式設定された数値文字列を取得するバッファーへのポインター。

[in] cchNumber

lpNumberStr で示される数値文字列バッファーのサイズ (TCHAR 値)。 または、アプリケーションでこのパラメーターを 0 に設定することもできます。 この場合、関数は数値文字列バッファーに必要なサイズを返し、 lpNumberStr パラメーターは使用しません。

戻り値

成功した場合に lpNumberStr で示されるバッファーで取得された TCHAR 値の数を返します。 cchNumber パラメーターが 0 に設定されている場合、関数は、書式設定された数値文字列を保持するために必要な文字数 (終端の null 文字を含む) を返します。

成功しなかった場合、関数は 0 を返します。 拡張エラー情報を取得するために、アプリケーションは GetLastError を呼び出すことができます。これにより、次のいずれかのエラー コードが返されます。

  • ERROR_INSUFFICIENT_BUFFER。 指定されたバッファー サイズが十分に大きくなかったか、 正しく NULL に設定されていませんでした。
  • ERROR_INVALID_FLAGS。 フラグに指定された値が無効でした。
  • ERROR_INVALID_PARAMETER。 パラメーター値のいずれかが無効です。
  • ERROR_OUTOFMEMORY。 この操作を完了するのに十分なストレージが使用できませんでした。

注釈

この関数は、 カスタム ロケールからデータを取得できます。 データは、コンピューター間、またはアプリケーションの実行間で同じになることは保証されません。 アプリケーションでデータを永続化または送信する必要がある場合は、「 永続的なロケール データの使用」を参照してください。

この関数の ANSI バージョンを Unicode のみのロケール識別子と共に使用すると、オペレーティング システムでシステム コード ページが使用されるため、関数は成功する可能性があります。 ただし、システム コード ページで未定義の文字は、文字列に疑問符 (?) として表示されます。

注意

winnls.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして GetNumberFormat を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winnls.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

GetNumberFormatEx

NUMBERFMT

各国語サポート

各国語サポート関数