问题描述
- 为什么为什么为什么在C语言中....
-
为什么在C语言中 当除号的左右两边都是整数时候,商也只有整数部分呢?
5/3 = 1 2/3 =0
解决方案
应为C语言就是这样规定的,int类型的数相除只能得到int类型的数,只要其中一个是double的话那结果就是double。不过在js中因为默认都是double,所以2/3的话结果是小数。
解决方案二:
C语言中,整数相除是整除。
你要这么写
double r = 2/(double)3;
或者
double r = 2/3.0;
解决方案三:
/ 是除运算,你是知道的。但C语言中根据运行的变量或常量确认运行结果的类型。两个 int 计算的结果还是 int,所以将计算后的小数位舍去了,就得到你提供的结果。
解决方案四:
因为这是C的语法啊,int型和int型相除,还是得到int型,如果是与double型相除的话,就是得到double型,建议多看看C的基础哈
解决方案五:
double d=2.0/3就行了
解决方案六:
补充一点,C++11 规定,取整运算向0方向舍入,即正结果往小了取,负数结果往大了取。
解决方案七:
我觉的可以强制转换成double来算比较好,int除法除完了就还是int 啊
解决方案八:
因为在C语言中两个int型的运算,只能得到int型,除非你进行格式转化
解决方案九:
C语言中文件操作
C语言写的文本编辑器
C++/C语言中链表队列与栈
时间: 2024-08-30 04:58:16