我下面的代码是自动舍入输入。
我看不到任何函数可以将输入四舍五入。
有人可以看看吗?

#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main()
 {
     string input = "";
     int weight = 0;
     int height = 0;
     int bmi = 0;
     while (true)
     {
         cout << "Enter weight: ";
         getline(cin, input);
         // This code converts from string to number safely.
         stringstream myStream(input);
         if (myStream >> weight)
             break;
         cout << "Invalid number, please try again" << endl;
     }
     while (true)
     {
         cout << "Enter height: " << endl;
         getline(cin, input);
         // This code converts from string to number safely.
         stringstream myStream(input);
         if (myStream >> height)
             break;
         cout << "Invalid number, please try again" << endl;
      }
      bmi = height * height;
      bmi = weight/bmi;
      if(bmi > 25)
      {
          cout << "Overweight" << endl;
      }
      else if(bmi < 18.5)
      {
           cout << "Underweight" << endl;
      }
      else
      {
           cout << "Normal weight" << endl;
      }
}

最佳答案

您遇到了一个名为integer truncation的问题。通过使用浮点类型(例如doublefloat),可以轻松解决此问题。

08-16 08:59