小编old*_*new的帖子

我的数学怎么了?

我有一个涉及浮点数和整数的函数.当我运行代码时,结果出错了.当我为input_voltage输入4.3时,我得到小数的3803和HEX的EDB.正确的答案应该是3808和EE0.谁能告诉我可能会发生什么?

#include <stdio.h>

int digital_encoding(float voltage);

int main()
{
    float input_voltage;
    int valid, ch;

    do{
        printf("Please enter the input voltage between 0 and 5 volts: \n");
        valid = scanf("%f", &input_voltage);
        if(input_voltage <= 0){
            printf("Enter a number larger than 0! \n");
            valid = 0;
        }
        if(input_voltage >= 5){
            printf("Enter a number less than 5! \n");
            valid = 0;
        }
    }while(valid != 1);

    digital_encoding(input_voltage);
}
int digital_encoding(float voltage)
{
    int dig_encode;
    dig_encode = ((voltage + 5)*(4095/10));
    printf("The digital encoding equals %d in …
Run Code Online (Sandbox Code Playgroud)

c floating-point int

0
推荐指数
1
解决办法
144
查看次数

标签 统计

c ×1

floating-point ×1

int ×1