Question
This assignment is for c++ and I need help creating the function that will round the number to the number of decimal digits given. I
This assignment is for c++ and I need help creating the function that will round the number to the number of decimal digits given. I know how to round off with the given number of digits, but I am not sure how to create a function that can round off with different number of digits. Below are the instructions and the coding I have done so far:
You will be have to round numbers very often so you decided to create your own function round_off() that will receive the number to be rounded and the number of decimal digits that the number should be rounded to and will return the value rounded to the specified number of decimal digits. You need to create a program to test the function. It will ask the user to enter the double precision real number to be rounded and a whole number indicating the number of decimal digits. It will then display the original number with ten digits and the rounded value (also a double precision real number) with the number of digits specified by the user plus 2 more. This assignment will be completed in two steps: 1) First you will implement the algorithm shown below in which the rounding will be done in main() 2) Once you have this working you will need to modify your solution so you: Declare the prototype of the function above main() Call the function in main() to do the rounding Define the function below main()
The coding I have so far:
#include
using namespace std;
// Ignore this; it's a little function used for making tests inline void _test(const char* expression, const char* file, int line) { cerr << "test(" << expression << ") failed in file " << file; cerr << ", line " << line << "." << endl << endl; } // This goes along with the above function...don't worry about it #define test(EXPRESSION) ((EXPRESSION) ? (void)0 : _test(#EXPRESSION, __FILE__, __LINE__))
// Insert here the prototype of the function here
int main() { double value, valuero; // Declare variable value, valuero that hold double precision real numbers
int decdig; // Declare variable decdig that holds whole numbers
cout << "Enter the real number: "; // Prompt the user to "Enter the real number: "
cin >> value; // Read from keyboard the value entered by the user and assign it to value
cout << "Enter number of digits: "; // Prompt the user to "Enter number of digits: "
cin >> decdig; // Read from keyboard the value entered by the user and assign it to decdig
valuero = floor((valuero * 100.0) + 0.5 / 100.0; // Round the real number to the number of decimal digits specified and assign the result to valuero
cout << fixed << setprecision(10); // Format the output to display the numbers in fixed format with ten decimal digits
cout << setw(23) << "The original number is " << value; // Display on the screen, using 23 columns, the message // "The original number is ", value
cout << fixed; decdig + 2; // Format the output to display the numbers in fixed format with the number of decimal digits specified plus 2
cout << setw(23) << "The rounded number is " << valuero; // Display on the screen, using 23 columns, the message // "The rounded number is ", valuero
system("pause");
// Do NOT remove or modify the following statements cout << endl << "Testing your solution" << endl << endl; test(typeid(value) == typeid(1.)); // Incorrect data type used for value test(typeid(valuero) == typeid(1.)); // Incorrect data type used for valuero test(typeid(decdig) == typeid(1)); // Incorrect data type used for decdig /* Include these tests once the function has been implemented
test(fabs(round_off(125.123456789,2) - 125.12 ) < 0.001); // Incorrect rounding to two decimal digits test(fabs(round_off(125.123456789,4) - 125.1235) < 0.00001); // Incorrect rounding to four decimal digits test(fabs(round_off(125.987654321,0) - 126.) < 0.001); // Incorrect rounding to no decimal digits test(fabs(round_off(125.987654321, 5) - 125.98765) < 0.000001); // Incorrect rounding to five decimal digits */
system("pause");
return 0; }
//************************ Function definition ************************* // Read the handout carefully for detailed description of the functions that you have to implement
// Rounds the value received in the first parameter to the number of digits received in the second parameter
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started