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 €
См. также
|
[virtual] | предоставляет количество знаков после запятой (виртуальная защищённая член-функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/locale/moneypunct/decimal_point