double a=22;int i=0;​i=a%11;为什么有错?

问题描述:

double a=22;int i=0;​i=a%11;为什么有错?
如题,
1个回答 分类:综合 2014-12-09

问题解答:

我来补答
求余 符号 只能用于 整形 .
a 是 double 型的.
% 求余符号,二元操作符
即拥有两个操作元/操作数,也可以叫 二目、两目
有个三目运算符 :" 举例 => int a = b > c b :c; )
% 的两个操作元 默认 必需是 整形.
int、short int、unsigned int.有的语法里,char bool 也算整形,因为它们的数据范围(这里用“值空间”可能更好理解)属于 int 的值空间.
double 的数据范围(也可以说是精度)明显大于int,所以无法自动转换为 int .
你可以把运算符当成函数(或者叫方法).二元运算符就是带两个参数的函数:
int qiuyu(int a,int b) { ...}
某些高级语言允许重载运算符,如C++,因此可以通过重载使 % 支持非整形数据.
int qiuyu(double a,double b) { return (int)a % (int)b ; }
这样的.
 
 
展开全文阅读
剩余:2000
下一页:原创8