任务和代码
/*
*Copyright (c)2017,CSDN学院
*All rights reserved.
*文件名称:main.c
*作者:胡益林
*完成日期:2017年06月12日
*版本号:V1.0
*
*问题描述:从键盘上输入一个浮点数(小数点后有三位数),然后分别输出该数的整数部分和小数部分。
*程序输出:输出该数的整数部分和小数部分。
*/
#include<stdio.h>
int main()
{
float x;
int a,b;
printf("请输入一个浮点数(小数点后有三位数):");
scanf("%f",&x);
a=x; //自动类型转换,取整数部分;
b=(int)(x*1000)%1000; //乘以1000后对1000取余,得到小数点后3位数字
printf("该数的整数部分和小数部分分别为:%d %d\n",a,b);
return 0;
}
运行结果
知识点总结
C语言中数据类型的自动转换、强制转换。具体方法如下:
该程序用来分离浮点数的整数和小数部分,分离整数部分的方法是将该浮点数赋值给一个整数变量,当程序运行后,程序做自动转换,将该浮点数小数部分的数值丢掉,将整数部分赋值给整数变量,这样就得到了该浮点数的整数部分;分离小数部分的方法是将该浮点数先乘以1000,然后强制转换为整数,最后和1000取余,得到的数据便是小数部分。
心得