Я пытаюсь округлить свой окончательный ответ до 2 знаков после запятой, так что это доллары и центы. Я новичок в кодировании и не могу разобраться. Я хочу округлить "w" в строке "Сумма, которую вам нужно взимать". Вот мой код:
#include <iostream>
using namespace std;
int main()
{
string Choice;
float x, w;
cout << "Please enter the amount needed." << endl;
cin >> x;
w = x/(1-0.0275);
cout << "The amount you need to charge is $"<< w << "." << endl;
return (0);
}
Ответ 1 · рейтинг 4 · Tim
Согласно примеру здесь http://www.cplusplus.com/forum/beginner/3600/ Вы можете использовать
cout << setprecision(2) << fixed << w << endl;
(fixed необязательно)
Вам придется #include <iomanip>
Как указывает Synxis, это будет работать только для печати значения, оно не изменит значение, хранящееся в w.
Ответ 2 · рейтинг 2 · namu
Вы всегда можете умножить свой ответ x на 100, округлить, а затем разделить на 100.
x = (int)(x*100+0.5f);
x = ( (float)(x) ) / 100.0;
Ответ 3 · рейтинг 1 · Thomas Matthews
Вы можете изменить свою денежную единицу на "центы", а затем разделить на 100, чтобы получить доллары, и модифицировать 100, чтобы получить центы.
unsigned int money = 152; // USD $1.52
cout << "Money is: " << (money / 100) << "." << (money % 100) << "\n";
Это может быть более точным. Поищите в сети "все знает плавающую точку".