Проблемы с C++ при литье и округлении
Когда пользователь вводит 2.09, он умножается на 100, и на выходе получается 208.
Ниже приведена программа и выходные данные:
#include<iostream> using namespace std; int main ( ) { float userNumber; int change = 0; int n = 100; cout << "Enter cash: "; cin >> userNumber; cout << "\nuserNumber value: " << userNumber << "\n"; change = userNumber * n; cout << "\nChange after userNumber * 100: " << change << " userNumber: " << userNumber << "\n\n"; }
------------------------- Ниже приведен вывод------------------
Enter cash: 2.09 userNumber value: 2.09 Change after userNumber * 100: 208 userNumber: 2.09
Что я уже пробовал:
Я побывал на нескольких сайтах
Добавьте 0,5 перед приведением (если x > 0) или вычитайте 0,5 (если x < 0), потому что компилятор всегда будет усекать.
Philippe Mori
Тогда, если вы нашли решение, добавив / вычитая 0,5, то в чем же заключается вопрос/проблема? Как только вы знаете правило, вы пишете код так, чтобы он работал так, как ожидалось.
Philippe Mori
Неужели так трудно использовать блок кода для форматирования вашего кода?
Patrice T
В чем же вопрос ?