c语言将一个小数的整数和小数部分分别输出
当我输入3.65这个变量就变成了3.65000001导致没有输出结果
想知道这个问题的原因以及解决方法
第5、6行的变量不要定义成指针
x-*intpart这里有问题,,后面整数部分自动提升为浮点型,导致精度丢失。
建议全部改成double类型(无论是整数部分还是小数部分都用此类型)
整数部分采取.0lf输出方式就丢掉了,小数部分了。
为何不用float因为此类型精度低容易出问题。
下面代码仅供参考!谢谢!
#include<stdio.h>
int main(int argc, char *argv[])
{
double x,intt,fra;
scanf("%lf",&x);
intt=int(x);
fra=x-intt;
printf("%.0lf %.2lf",intt,fra);
return 0;
}