次の方法で共有


GetNumberFormatA 関数 (winnls.h)

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

メモ 相互運用性の理由から、Microsoft は新しいロケールのロケール識別子ではなくロケール名の使用に移行するため、GetNumberFormatEx 関数 getNumberFormatEx を することをお勧めします。 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

関数の操作を制御するフラグ。 lpFormat が NULLに設定されていない場合 、アプリケーションはこのパラメーター 0 に設定する必要があります。 この場合、関数は、ロケールの既定の数値形式にユーザーオーバーライドを使用して文字列の書式を設定します。 lpFormat が NULLに設定されている場合、アプリケーションは、指定されたロケールのシステムの既定の数値形式を使用して文字列を書式設定する 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 を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされる最小サーバー Windows 2000 Server [デスクトップ アプリのみ]
ターゲット プラットフォーム の ウィンドウズ
ヘッダー winnls.h (Windows.h を含む)
ライブラリ Kernel32.lib
DLL Kernel32.dll

関連項目

GetNumberFormatEx を する

NUMBERFMT

各国語サポート

各国語サポート関数