Spec-Zone.ru › C++

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

Определён в заголовочном файле <locale>
public:
CharT decimal_point() const;
(1)
protected:
virtual CharT do_decimal_point() const;
(2)
1) Открытая функция-член, вызывает функцию-член do_decimal_point наиболее производного класса.
2) Возвращает символ, используемый в качестве разделителя десятичной части при денежном вводе-выводе, если формат предусматривает дробную часть (то есть если 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 << " decimal point is '"
              << std::use_facet<std::moneypunct<char>>(loc).decimal_point()
              << "' for example: " << std::showbase << std::put_money(123);
    if (std::use_facet<std::moneypunct<char>>(loc).frac_digits() == 0)
        std::cout << " (does not use frac digits)";

    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 decimal point is '.' for example: $1.23
ja_JP.utf8 decimal point is '.' for example: ¥123 (does not use frac digits)
sv_SE.utf8 decimal point is ',' for example: 1,23 kr
de_DE.utf8 decimal point is ',' for example: 1,23 €

См. также

do_frac_digits
[виртуальная]
задаёт количество цифр, отображаемых после десятичного разделителя
(виртуальная защищённая функция-член)

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/cpp/locale/moneypunct/decimal_point

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API