Formatting Numbers with Commas in C
Introduction:
In C , formatting numbers with commas is a common task, especially when displaying currency or large numerical values. This tutorial demonstrates an efficient method for adding commas to integers and doubles.
Method:
To format numbers with commas, we will utilize std::locale and std::stringstream.
Step 1: Using std::locale
<code class="cpp">std::stringstream ss; ss.imbue(std::locale(""));</code>
std::locale allows us to set the locale for string formatting. Using the empty string ("") ensures that the locale is set to the user's default system settings.
Step 2: Using std::stringstream
<code class="cpp">ss << std::fixed << value;
std::stringstream is used to construct the formatted string. We insert the value into the stream using std::fixed to maintain the decimal point.
Formatting Integers:
For integers, simply call the FormatWithCommas() method as follows:
<code class="cpp">std::string result1 = FormatWithCommas(7800);
Formatting Doubles:
For doubles, use the same method but with a slight modification in the usage of std::fixed:
<code class="cpp">ss << std::fixed << std::setprecision(2) << value;
std::setprecision() ensures that only two decimal digits are displayed.
Example Usage:
<code class="cpp">#include <cmath> std::string FormatWithCommas(double value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << std::setprecision(2) << value; return ss.str(); } int main() { double pi = std::atan(1.0) * 4.0; std::string result = FormatWithCommas(pi); std::cout << result << "\n"; }</code>
Output:
3.14
The above is the detailed content of How to Format Numbers with Commas in C Using std::locale and std::stringstream?. For more information, please follow other related articles on the PHP Chinese website!