Man page - strfmon(3)

Packages contains this manual

Available languages:

en fr es ja ru ro

Manual

STRFMON

名 前
書 式
説 明
返 り 値
属 性
準 拠

関 連 項 目
こ の 文 書 に つ い て

名 前

strfmon, strfmon_l - convert monetary value to a string

書 式

#include <monetary.h>

ssize_t strfmon(char * s , size_t max , const char * format , ...);

ssize_t strfmon_l(char * s , size_t max , locale_t locale ,
const char *
format , ...);

説 明

The strfmon () function formats the specified monetary amount according to the current locale and format specification format and places the result in the character array s of size max .

The strfmon_l () function performs the same task, but uses the locale specified by locale . The behavior of strfmon_l () is undefined if locale is the special locale object LC_GLOBAL_LOCALE (see duplocale (3)) or is not a valid locale object handle.

format 中 の 通 常 の 文 字 は 、 変 換 さ れ ず に そ の ま ま s に コ ピ ー さ れ る 。 変 換 指 定 は '%' 文 字 で 始 ま る 。 こ の 直 後 に は 、 以 下 の フ ラ グ を 0 個 以 上 続 け る こ と が で き る 。

= f

1 バ イ ト 文 字 f を 数 値 埋 め 文 字 (numeric fill character) に す る (左 精 度 と 共 に 用 い る 。 以 下 を 参 照 )。 指 定 さ れ な い と 、 ス ペ ー ス 文 字 が 用 い ら れ る 。

^

現 在 の ロ ケ ー ル で 定 義 さ れ て い る で あ ろ う グ ル ー プ 化 文 字 (grouping character) を 一 切 使 わ な い 。 デ フ ォ ル ト で は グ ル ー プ 化 は 有 効 に な っ て い る 。

( ま た は +

( フ ラ グ は 、 負 の 数 値 を 括 弧 で 括 る こ と を 意 味 す る 。 + フ ラ グ は 符 号 を デ フ ォ ル ト の よ う に 取 り 扱 う こ と を 意 味 す る (す な わ ち 数 値 の 前 に ロ ケ ー ル の 符 号 マ ー ク が 置 か れ る 。 例 え ば 正 な ら な に も な く 、 負 な ら '-' を 置 く 、 な ど )。

!

通 貨 シ ン ボ ル を 省 略 す る 。

-

す べ て の フ ィ ー ル ド を 左 詰 め に す る 。 デ フ ォ ル ト は 右 詰 め 。

次 の 位 置 に は 、 フ ィ ー ル ド の 幅 を 指 定 で き る 。 10 進 の 数 値 文 字 列 で 、 フ ィ ー ル ド の 最 小 幅 を バ イ ト 単 位 で 指 定 す る 。 デ フ ォ ル ト は 0。 結 果 が こ の 幅 よ り も 狭 く な っ た 場 合 に は 、 不 足 分 が ス ペ ー ス で 埋 め ら れ る (左 詰 め フ ラ グ が 指 定 さ れ て い な け れ ば 左 側 が 埋 め ら れ る )。

次 の 位 置 に は 、 "#" に 10 進 数 値 文 字 列 を 続 け た 形 式 で 、 左 精 度 (left precision) を 指 定 で き る 。 通 貨 の 基 数 点 (radix) よ り 左 側 の 数 値 の 桁 数 が こ の 指 定 よ り 小 さ い 場 合 は 、 数 値 埋 め 文 字 で 左 側 が 埋 め ら れ る 。 こ の フ ィ ー ル ド 幅 の 指 定 で は 、 グ ル ー プ 化 文 字 は カ ウ ン ト さ れ な い 。

次 の 位 置 に は 、 "." に 10 進 数 値 文 字 列 を 続 け た 形 式 で 、 右 精 度 (right precision) を 指 定 で き る 。 整 形 さ れ る 数 値 は 、 整 形 前 に こ の 桁 数 に 丸 め ら れ る 。 デ フ ォ ル ト で は カ レ ン ト ロ ケ ー ル の frac_digits int_frac_digits の 指 定 を 用 い る 。 右 精 度 が 0 の 場 合 は 、 基 数 点 文 字 (radix character) は 印 字 さ れ な い (こ こ で の 基 数 点 文 字 は LC_MONETARY で 定 義 さ れ て お り 、 LC_NUMERIC の 指 定 と は 異 な っ て い て も よ い )。

最 後 に 、 変 換 指 定 は 変 換 文 字 (conversion character) で 終 了 し な け れ ば な ら な い 。 変 換 文 字 に は 以 下 の 3 つ が あ る 。

%

(こ の 場 合 は 指 定 全 体 が "%%" で な け れ ば な ら な い 。 ) 結 果 の 文 字 列 に '%' 文 字 を 書 き こ む 。

i

double 型 の 引 数 ひ と つ が 、 ロ ケ ー ル の 国 際 通 貨 フ ォ ー マ ッ ト (international currency format) を 用 い て 変 換 さ れ る 。

n

double 型 の 引 数 ひ と つ が 、 ロ ケ ー ル の 国 内 通 貨 フ ォ ー マ ッ ト (national currency format) を 用 い て 変 換 さ れ る 。

返 り 値

strfmon () 関 数 は 、 結 果 の 文 字 列 が 終 端 の ヌ ル バ イ ト を 含 め て 配 列 s に 収 ま っ た 場 合 に は 、 s に 書 き こ ま れ た 文 字 数 を 返 す 。 ヌ ル バ イ ト は 文 字 数 に 入 ら な い 。 そ れ 以 外 の 場 合 に は 、 errno E2BIG を 設 定 し て -1 を 返 す 。 こ の 場 合 の 配 列 の 内 容 は 未 定 義 で あ る 。

属 性

こ の 節 で 使 用 さ れ て い る 用 語 の 説 明 に つ い て は 、 attributes (7) を 参 照 。

Image grohtml-14042-1.png

準 拠

POSIX.1-2001, POSIX.1-2008.

次 の よ う な 関 数 コ ー ル

strfmon(buf, sizeof(buf), "[%^=*#6n] [%=*#6i]",
1234.567, 1234.567);

は 、 オ ラ ン ダ の ロ ケ ー ル で は 以 下 の よ う な 出 力 に な る 。

[€ **1234,57] [EUR **1 234,57]

in the nl_NL locale. The de_DE , de_CH , en_AU , and en_GB locales yield

[ **1234,57 €] [ **1.234,57 EUR]
[ Fr. **1234.57] [ CHF **1'234.57]
[ $**1234.57] [ AUD**1,234.57]
[ £**1234.57] [ GBP**1,234.57]

関 連 項 目

duplocale (3), setlocale (3), sprintf (3), locale (7)

こ の 文 書 に つ い て

こ の man ペ ー ジ は Linux man-pages プ ロ ジ ェ ク ト の リ リ ー ス 5.10 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は https://www.kernel.org/doc/man-pages/ に 書 か れ て い る 。