首页 > 解决方案 > 使用 BMI 计算器在 C++ 中舍入数字的问题

问题描述

我',尝试使用 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;
}

标签: c++

解决方案


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


推荐阅读