找不到错误是什么

时间:2016-12-12 21:33:27

标签: c

编译完这段代码后,得到k = 0。不应该是k = 0.8? 代码有什么问题?

#include <stdio.h>
#include <math.h>
void main()
{
    int x=8;
    int y=10;
    int m=6;
    float k;
    k=x/y;
    printf("k=%f",k);
}

2 个答案:

答案 0 :(得分:2)

虽然您要将除法的结果分配给SELECT * FROM MyTable WHERE TO_DATE(MyDate, 'DD-MON-YYYY HH:MI:SS AM') > '31-DEC-2016 08:00:00 AM'; ,但结果本身是以整数计算的。这是因为两个操作数都是ORA-01855: AM/A.M. or PM/P.M. required 类型。

有多种方法可以解决此问题 - 例如,将红利分配给float,然后将其除以除数,如下所示:

int

答案 1 :(得分:1)

类型转换会更有用和简单。

    int x=8;
    int y=10;
    int m=6;
    float k;
    k=(float)x/y;
    printf("k=%f",k);