C中的商数错误

时间:2017-11-19 08:49:23

标签: c

我是C语言的新手,我在将这个简单的算术运算转换为公吨时遇到了麻烦。我不知道如何解决它。它总是给我错误的结果。

#include<math.h>
#define oz 35273.92

main()
{
    int ounces;
    float mton;
    clrscr();

    printf("Enter ounces: ");
    scanf("%d",&ounces);

    mton = ounces/oz;

    printf("The metric ton is %f.", mton);

    getch();
    return(0);
}

我尝试输入70547.84,但结果是错误的。

Enter ounces: 70547.84
The metric ton is 0.014026

如果我输入一个低于oz的数字,它会给我-0.000000

1 个答案:

答案 0 :(得分:2)

很抱歉,我无法使用我的编译器(GCC 6.3.0)重现这一点。我得到的结果是1.999976,这是相当合理的。此外,我还没有-0.000000输入低于oz

我建议您使用ounces的浮点值,因为您正在输入十进制数字。如果您使用int,则您将无法读取小数点。您将在ounces中获得70547,并在输入流中留下.84

#include <stdio.h>
#define oz 35273.92

int main() {
    float ounces;
    float mton;
    clrscr();

    printf("Enter ounces: ");
    scanf("%f", &ounces);

    mton = ounces/oz;

    printf("The metric ton is %f.", mton);

    getch();
    return(0);
}

这应该会给你想要的结果。