c++ - 如果它被声明为 double ,如何在数字中添加逗号?

标签 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。我也不想使用本地

最佳答案

也许,因为你需要一个字符串,你也可以读取一个字符串,然后解析它,从小数点开始每第 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;
}

关于c++ - 如果它被声明为 double ,如何在数字中添加逗号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49674638/

相关文章:

c++ - 如何找出二进制文件中使用的是哪个 C++ 标准?

c++ - 点云库 : How visualize a set of 3D point stored in a C++ <vector>?

c++ - 在 C++ 宏 "int val = rand()"中创建新值

c++ - 代码是否被复制到派生类?

c++ - 卡在跟踪 SIGFPE/算术异常

c++ - SCons 库和子库

c++ - 我是否需要保护一个由一个线程写入并由多个线程读取的变量?

python - 我如何在 CPP 中创建这样的列表?

c++ - 具有数字部分的字符序列

C++ vector 值不正确