Home > Mobile >  I cant seem to get the amount of decimals right using setprecision c
I cant seem to get the amount of decimals right using setprecision c

Time:12-11

I'm currently getting into subroutines/subprograms or whatever you call them in english and in this specific assignment that i'm trying to solve I have to calculate the average length of two words.

void Length(string const text_1,
            string const text_2,
            int & total_length,
            double & mean_length)
{
    total_length = text_1.length()   text_2.length();
    mean_length = static_cast<double>(total_length) / 2;
}

void Length_Program(int val)
{
    string text_1;
    string text_2;
    int total_length{};
    double mean_length{};

    cout << "Mata in två ord: ";
    cin >> text_1 >> text_2;
    cout << "Totallängd: ";
    Length(text_1, text_2, total_length, mean_length);
    cout << total_length << endl;
    cout << "Medellängd: " << fixed << setprecision(1) << mean_length;

}

I have set the precision to setprecision(1) and I assume it will only write one decimal but I keep getting two decimals. my example is: abcd E it should say that it is an average of 2.5 words but it says 2.51 for some reason. Can someone help me understand what i'm doing wrong?

CodePudding user response:

Your problem is that you forgot << endl on your last output line. The return code shown by the OS is appended to your output. The setprecision is working just fine.

  • Related