Can anyone tell me why setprecision is causing this error at runtime:

terminate called after throwing an instance of 'std::bad_alloc'
what(): std::bad_alloc

The program ran fine; after I added << setprecision(2) << to a series of output, I received the error when trying to run the program. I have included iomanip and the program will run fine if I remove the setprecision manipulator. Thanks for any help.

Here is the snippet of code where I'm trying to use setprecision, avgWait is a float variable:

//Calculate average waiting time,
  //.005 added to round to nearest hundreth of a time unit
  avgWait = ((float)totalWait/totCust) + .005;
  cout<< endl << "The simulation ran for " << sTime << " time units" << endl
      << "Number of servers: " << numServers << endl
      << "Average transaction time: " << tTime << endl
      << "Average time between customer arrivals: " << tbArrival << endl
      << "Total waiting time: " << totalWait << endl
      << "Number of customers that completed a transaction: " << servedCust
      << endl
      << "Number of customers left at servers: "
      << servers.getNumberOfBusyServers() << endl
      << "Number of customers left in the queue: " << customers.size() << endl
      << "Average waiting time: " << fixed << setprecision(2) << avgWait << endl
      << "***************END SIMULATION***************" << endl;

After fixing other seemingly unrelated problems with the program, the error stopped occurring. Still, it would be nice to know how just adding the setprecision manipulator caused this error.

This question has already been answered. Start a new discussion instead.