如果将数字声明为双精度数,如何在数字中添加逗号?

时间:2018-04-05 14:17:56

标签: c++

假设我希望用户输入一个数字,我想用逗号来表示该号码。

实施例

double attemptOne;

cout << "Enter a number: ";
cin >> attemptOne;  //user inputs 10000.25
cout << endl << attemptOne;  //I want to cout 10,000.25

我是c ++的新手,所以请帮帮我 我不是在谈论要改为逗号的小数,而是要让程序知道当数字大于999时添加逗号,如1,000.25 10,000.25 100,000.25。我也不想使用本地

1 个答案:

答案 0 :(得分:2)

也许,因为你需要一个字符串,你也可以读取一个字符串,然后解析它,从小数点开始每隔3位数加一个逗号,或者如果不存在小数点则从末尾加上逗号:

#include <iostream>
#include <string>

int main()
{
    std::string attemptOne;
    std::cout << "Enter a number: ";
    std::cin >> attemptOne;

    size_t dec = attemptOne.rfind('.');
    if (dec == std::string::npos)
        dec = attemptOne.size();

    while (dec > 3)
        attemptOne.insert(dec -= 3, 1, ',');

    std::cout << attemptOne << std::endl;
}