std::numpunct<CharT>::decimal_point, do_decimal_point
From cppreference.com
C++
Feature test macros (C++20)
Concepts library (C++20)
Metaprogramming library (C++11)
Ranges library (C++20)
Filesystem library (C++17)
Concurrency support library (C++11)
Execution control library (C++26)
Text processing library
Regular expressions library (C++11)
Formatting library (C++20)
(C++17)
(C++17)
(C++17)
(C++17)
(C++17)
(C++26)
Localization library
(C++11/17/26*)
(C++11/17/26*)
(C++11/17/26*)
(C++11/17/26*)
(C++11/17/26*)
(C++11/17/26*)
std::numpunct
Member functions
numpunct::decimal_pointnumpunct::do_decimal_point
Defined in header
<locale>
public:
char_type decimal_point() const;
(1)
char_type decimal_point() const;
protected:
virtual char_type do_decimal_point() const;
(2)
virtual char_type do_decimal_point() const;
1) Public member function, calls the member function
do_decimal_point
of the most derived class.2) Returns the character to be used as the decimal separator between integer and fractional parts.
[edit] Return value
The value of type char_type
to use as the decimal separator. The standard specializations of std::numpunct
return '.' and L'.'.
[edit] Example
Run this code
#include <iostream> #include <locale> struct slash : std::numpunct <char> { char do_decimal_point() const { return '/'; } // separate with slash }; int main() { std::cout.precision(10); std::cout << "default locale: " << 1234.5678 << '\n'; std::cout.imbue(std::locale (std::cout.getloc(), new slash)); std::cout << "locale with modified numpunct: " << 1234.5678 << '\n'; }
Output:
default locale: 1234.5678 locale with modified numpunct: 1234/5678