为什么在C语言中,当除号的左右两边都是整数时候,商也只有整数部分呢?

如题所述

C语言算数运算中,如果是同类型数据进行算术运算(+-*/)时,其结果的数据类型还是相应的数据类型,不会发生变化,所以,当除号的左右两边都是整数时候,商也只有整数部分!

如果参与运算的数据是不同的类型,则,首先有如下类型转换规则:
1、字符必须先转换为整数(C语言规定字符类型数据和整型数据之间可以通用) 。
2、short型转换为int型(同属于整型) 。
3、float型数据在运算时一律转换为双精度(double)型,以提高运算精度(同属于实型) 。
其次,有下面的规则:
当不同类型的数据进行操作时,应当首先将其转换成相同的数据类型,然后进行操作,转换规则是由低级向高级转换。由低到高依次为:char ,short, int, unsigned, long, double(float)
温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-09-30
/ 是除运算,是知道的。但C语言中根据运行的变量或常量确认运行结果的类型。两个 int 计算的结果还是 int,所以将计算后的小数位舍去了,就得到提供的结果。
第2个回答  2015-09-20
因为C语言就是这样规定的,int类型的数相除只能得到int类型的数,只要其中一个是double的话那结果就是double。不过在js中因为默认都是double,所以2/3的话结果是小数。本回答被网友采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网