我正在尝试使用C++创建一个简单的BMI计算器。输入我的高度和体重时,我会得到正确的结果,但无法将数字四舍五入到最接近的整数。我查找了一些视频和一些文章,其中许多建议使用“round()”函数。我尝试过,结果是0!
所有反馈都会有所帮助。谢谢!

#include <iostream>
#include <cmath>

using namespace std;

float Calculate(float kilo, float centimeter)
{
    float meter = centimeter * 100;
    return kilo / (meter * meter);
}


int main()
{
    float kilo, centimeter;
    float bmi;

    cout << "BMI calculator." << endl;
    cout << "Please enter your weight in kilograms. ";
    cin >> kilo;
    cout <<"Please enter your height in centimeters. ";
    cin >> centimeter;

    bmi = Calculate(kilo, centimeter);

    cout << round(bmi) << endl;
    return 0;
}

最佳答案

您计算BMI的公式是错误的,只需更改float meter = centimeter/100;行即可。
因为根据您的公式,任何数字乘以100再乘以平方就变得很大,以至于除以权重后最终得到的舍入后的浮点数很小,这就是为什么总是在输出中得到0的原因。

关于c++ - 使用BMI计算器在C++中四舍五入数字的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/62732681/

10-10 18:27