C ++中的货币格式

时间:2015-12-02 05:47:11

标签: c++ visual-c++

我一直很努力让我的代码正常运行。我需要编写一个程序,它取一个不大于12位的数字,并使用字符串操作将其转换为货币格式。我觉得我已经拥有了大部分内容,但我不知道如何让 - 符号位于$符号前面以及如何在最后没有小数时让逗号工作。

这是:

/*
    I need a 12 digit maximum double precision number

        verify that it is a double < 12 digits
        verify that all digits are numeric with a possible
        minus sign in the first position t
        decimal is 2nd or 3rd last digit;

    convert the number to currency using string manipulation
        with commas placed at 3 digit intervals counted from the decimal
        $ in front
        - in front of $
        0 is a positive number

    Display currency format
    */
#include <iostream>
#include <string>


using namespace std;

void dollarFormat(string &);

int main()

{
    cout << "Student Name: \t Chad Weireter" << endl
        << "Student ID:900658044" << endl << endl;

    string input;

        cout << "Please enter a number up to 12 digits long." << endl
            << "The number may be positive or negative" << endl
            << "and may include fractions (Up to two decimal positions)" << endl
            << "Sign and decimal dot(.) are not included in the digit count: ";

        cin >> input;
        dollarFormat(input);
        cout << "The currency value is:\t" << input << endl;

        cin.get();
        cin.ignore();

}

void dollarFormat(string &currency)
{
    int dp;
    dp = currency.find('.');
    if (dp > 3)
    {
        for (int x = dp - 3; x > 0; x -= 3)
            currency.insert(x, ",");
    }
    currency.insert(0, "$");

}

1 个答案:

答案 0 :(得分:0)

减号

对于减号......您是否考虑过使用find('.')做的事情?

尝试find('-')

如果负号为负数,那么减号将在哪个指数位置?

接下来,如果该索引处有减号,那么您应该在0索引处插入美元符号...还是应该将其插入其他地方?

美元符号

当您插入美元符号时...您需要在此处使用控制语句... if正数进行决策,然后在索引0处插入美元符号(就像您已经做过的那样)...... else否定在指数位置插入美元符号......:)