C言語で3桁区切りの数値を表示する
仕事で、そういうのが回ってきたので検索。
ネットを探すとCのサンプルはあるのですが、少々トリッキーなコーディングのものが多いので、C++でのベタな実装というとこで作ってみました。 |
Windows なら、そういう関数があったような ・ω・;
CURRENCYFMT structure (Windows)
GetCurrencyFormat
数字文字列を、指定したロケールの通貨文字列として書式化します。
あった、これこれ ・ω・
でも構造体が、英語しかなくて分かりづらい
|
翻訳してもなんか分かりにくいですね
CURRENCYFMTA stCurrency; memset(&stCurrency,0,sizeof(stCurrency)); stCurrency.Grouping=3; // 3桁区切り stCurrency.lpDecimalSep="."; //小数点区切り文字 stCurrency.lpThousandSep=","; //桁区切り文字 // stCurrency.NumDigits=0; // 小数点以下はなし stCurrency.NegativeOrder=2; // $ -x.x // stCurrency.PositiveOrder=0; // $x.x stCurrency.lpCurrencySymbol=""; //通貨単位はつけない lstrcpyA(str,"12345678"); GetCurrencyFormatA( NULL, 0, str,&stCurrency,cnmv,sizeof(cnmv)); |
出力結果は 12,345,678 ・ω・簡単だね
Comments