如何在 C 中除以整数并得到浮点数

How to divide integers and get a float in C

我正在通过获取单词、句子和字母的数量来构建段落难度标签器....我正在尝试除以整数并得到浮点数 for example ((letter_counter / word_counter) * 100); 除法 (80 / 21) * 100 返回 400 而不是 380.9523,我做错了什么?感谢您的帮助!这是我的代码示例! letter_counter, word_counter, sentence_counter = int


    // Putting all together
    float L = ((letter_counter / word_counter) * 100);
    printf("The L value = %f\n", L);

    float S = ((float) sentence_counter / word_counter) * 100;
    printf("The S value = %f\n", S);

    int index = round(0.0588 * L - 0.296 * S - 15.8);
    printf("Grade %i\n", index);

    if (index < 1)
    {
        printf("Before Grade 1\n");
    }
    else if (index >= 16)
    {
        printf("Grade 16+\n");
    }
    else
    {
        printf("Grade %i\n", index);
    }

您必须将 int 之一转换为 float。例如:

float L = (((float)letter_counter / word_counter) * 100);

您可以使用 100.00 而不是 100 来告诉编译器将表达式计算为浮点表达式,如下所示:

int num1 = 80;
int num2 = 21;
float L = (num1 * 100.00) / num2; // 100 -> 100.00

结果:

380.952393