#include?iostream
#include?"math.h"
#include?"stdlib.h"
int?main(int?argc,?char**?argv)?
{
int?m=0,n=0,z=0,x=0;//m为输入的第一个数?n为第二个数?z为整数部分?x为小数部分?
double?dm,dn,s=0;?//S是商,dm,dn分别为输入的第一,二个数的double型?
printf("请输入两个正整数:");
scanf("%d,%d",m,n);
dm=(double)m;
dn=(double)n;
s=dm/dn;
z=(int)s;
x=(double)(m%n)/n*(1000000);
printf("\n商:%lf?整数部分是:%d,?小数部分是:%d\n",s,z,x);
system("pause");
return?0;
}
必须转换其中一个为浮点数才能除得小数字.
之后用数字格式化语句限制小数位数就好了.
①.、可以利用C语言的强制转换规则.
C语言规定,当浮点数强制转换为整型类型时,只保留整数部分.
所以对于浮点数,比如float类型a, 执行(int)a后的值就是整数部分.
这样当执行a-(int)a时,得到的就是小数部分的值了.
#define DECIMAL(X) (x-(int)x)
这样执行DECIMAL(a)得到的值就是t的小数部分.
把变量改成双精度型的就可以了.
具体步骤如下:
把变量改成双精度型(double)的就好了,dev-c++用的编译器是gcc,在我的电脑上实验双精度的没问题,如果不行的话可以换成浮点型变量(float),但是会损失精度.
或者结果用%f来输出,单精度小数.
当两个整数相除时,由于小数点以后的数字会被截断,使运算结果为整数,故此时若希望得到运算结果为所预期的浮点数,则此时必须将两整数其一或是全部强制转换类型为浮点数.?
以上就是土嘎嘎小编为大家整理的go语言相除所得小数相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!