money_put/put_moneyで扱える型
コメントなし
前回のコードでは、数値をdoubleで出力していましたが、文字列で出力させることも可能です。実際にお金に関する値を扱うときにfloat/double/long doubleを使うことはあり得ず、かといって十進法ベースの実数型が標準ライブラリにあるわけでもないC++では、stringが唯一money_put/put_moneyでまともに使える型と言えるでしょう。
#include <iostream> #include <locale> #include <string> #include <iomanip> int main() { // en_US.ISO-8859-1相当 std::locale l("English_United States.1252"); std::cout.imbue(l); std::string x = "123456789012345678901234567890.123"; // money_put auto const& m = std::use_facet<std::money_put<char>>(l); m.put(std::cout, false, std::cout, ' ', x); std::cout << std::endl; // put_money std::cout << std::put_money(x, false) << std::endl; } |
2012年3月3日追記:コメント内のen_JPをen_USへ修正。
スポンサード リンク |
この記事のカテゴリ
- C++ ⇒ money_put/put_moneyで扱える型