C语言中,一个整型对一个浮点型取余是怎样运算的?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言中,一个整型对一个浮点型取余是怎样运算的?相关的知识,希望对你有一定的参考价值。
例如:
7%1/2
还有,
%和/是同优先级的,那么7%1/2是如何运算的呢?
谢谢各位前辈! 先谢谢你们的回答,那么
7%2/4呢?
是怎样运算的?
#include <stdio.h>
#include <math.h>
//输出4对0.3取余的结果
int main(int argc, char *argv[])
printf("%d\n",7%1/2);//由于%和/优先级相同,从左向右执行,7%1为0,0/2为0
printf("%lf\n",fmod(4,0.3));//输出0.100000
return 0;
double fmod( double x, double y );函数返回参数x/y的余数,需要添加math.h头文件。 参考技术A 你举的例子不是整型对浮点做%.
7%1/2等价于 (7%1)/2 = 0/2 = 0;
如果是想问 7%0.5,那是编译错误,%操作符不能用于浮点数 参考技术B 不是,如果均为整型那所得结果也为整型,即使不能整除只取整数部份。如果除数或被除数中有一个为浮点型或DOUBLE型结果就会是精度更高的那类 参考技术C 首先说说明下,取余运算是能是2个整数来运算。在表达式中同优先级的运算符是从左往右依次运算的,就像你这个7%1/2最终是等于0,7%2/4刚等于0本回答被提问者采纳 参考技术D 不是对浮点型取余,7%1/2是先执行7%1然后执行0/2
整型除以浮点型是啥型?
C语言里面
浮点型精度高于整形,因此整形数先自动被转换成浮点型,再进行除法运算,最终结果也为浮点型 参考技术A 如果定义两个整型,比如a、b,分别存入数值20、6,再用保留小数位数的代码保留3位,如下:#include <iostream>
#include <iomanip>
using namespace std;
int main()
int a=20,b=6;
cout<<fixed<<setprecision(3)<<a/b;
return 0;
输出结果:
3
不会出现小数,说明两个整型相除得整型;
如果把a定义成整型,把b定义成浮点型,再用保留小数位数的代码保留3位,如下:
#include <iostream>
#include <iomanip>
using namespace std;
int main()
int a=20;
double b=6;
cout<<fixed<<setprecision(3)<<a/b;
return 0;
输出结果:
3.333
说明一个整型除以一个浮点型得浮点型 参考技术B 算出来的结果是浮点型
但是最终结果
要看左值
左值是什么类型 得出结果就是什么类型 参考技术C 正常朝下兼容,整形可以完整转化成 浮点型,而浮点转成整形需要四舍五入。 参考技术D 其实啊是看你的最终变量,他是什么类型,最后结果就是什么类型。
比如a=b/c;a就是最终的本回答被提问者采纳
以上是关于C语言中,一个整型对一个浮点型取余是怎样运算的?的主要内容,如果未能解决你的问题,请参考以下文章