想问问这个代码该咋写,浮点数不太理解

img

浮点型其实就是带有小数部分,并不是一个整数,用double float来定义,%lf是打印浮点型小数用的,我不知道这个题目要保留几位小数,最终结果bmi我是保留两位小数的,本人也才刚学十来天,如有不足,请大佬多多指教

#include<stdio.h>
int main()
{
    int gen = 0;//定义变量-性别
    double weight;
    double st;
    double bmi;
    //定义体重、身高
    printf("请输入您的性别:(0代表男、1代表女)\n");
    scanf("%d", &gen);
    switch (gen)
    {
    case 0:
        printf("请分别输入体重(kg)、身高(m)\n");
        scanf("%lf %lf", &weight, &st);
        bmi = weight / (st * st);
        printf("%.2lf", bmi);
        if (bmi <= 20)
        {
            printf("偏瘦 ");
        }
        if (bmi > 20 && bmi <= 25)
        {
            printf("适中");
        }
        if (bmi > 25 && bmi <= 30)
        {
            printf("偏重");
        }
        if (bmi > 30)
        {
            printf("肥胖");

        }
        break;
    case 1:
        printf("请分别输入体重(kg)、身高(m)\n");
        scanf("%lf %lf", &weight, &st);
        bmi = weight / st * st;
        if (bmi <= 19)
        {
            printf("偏瘦 ");
        }
        if (bmi > 19 && bmi <= 24)
        {
            printf("适中");
        }
        if (bmi > 24 && bmi <= 39)
        {
            printf("偏重");
        }
        if (bmi > 39)
        {
            printf("肥胖");

        }
        break;
    }
    return 0;
}