std::moneypunct<CharT,International>::decimal_point, do_decimal_point

来自cppreference.com
< cpp‎ | locale‎ | moneypunct
 
 
 
 
在标头 <locale> 定义
public:
CharT decimal_point() const;
(1)
protected:
virtual CharT do_decimal_point() const;
(2)
1) 公开成员函数,调用最终派生类的成员函数 do_decimal_point
2) 返回用作货币 I/O 中小数点的字符,若格式使用小数(即若 do_frac_digits() 大于零)。对于典型的美国本地环境,其为字符 '.'(或 L'.')。

返回值

保有小数点的 CharT 类型值。

示例

#include <iomanip>
#include <iostream>
#include <locale>
 
void show_dpt(const char* locname)
{
    std::locale loc(locname);
    std::cout.imbue(loc);
    std::cout << locname << " 小数点是 '"
              << std::use_facet<std::moneypunct<char>>(loc).decimal_point()
              << "' 例如: " << std::showbase << std::put_money(123);
    if (std::use_facet<std::moneypunct<char>>(loc).frac_digits() == 0)
        std::cout << " (不用小数) ";
 
    std::cout << '\n';
}
 
int main()
{
    show_dpt("en_US.utf8");
    show_dpt("ja_JP.utf8");
    show_dpt("sv_SE.utf8");
    show_dpt("de_DE.utf8");
 
}

输出:

en_US.utf8 小数点是 '.' 例如: $1.23
ja_JP.utf8 小数点是 '.' 例如: ¥123 (不用小数)
sv_SE.utf8 小数点是 ',' 例如: 1,23 kr
de_DE.utf8 小数点是 ',' 例如: 1,23 €

参阅

提供小数点后要显示的位数
(虚受保护成员函数)