Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Глядя на окончательный ответ до 2 знаков после запятой С++

Автор вопроса: GodzdudeОтветов: 3

Я пытаюсь округлить свой окончательный ответ до 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);

}
  • cplusplus.com/forum/beginner/3600 ? Tim 03.03.2013
  • Вы не можете точно выразить большинство десятичных дробей с помощью чисел с плавающей запятой. Используйте целые числа и рассчитывайте в копейках. Peter Wood 03.03.2013

c++iostream

Ответы

Ответ 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";

Это может быть более точным. Поищите в сети "все знает плавающую точку".

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы