编译完这段代码后,得到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);
}
答案 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);