c语言小数输入出现问题

c语言将一个小数的整数和小数部分分别输出
当我输入3.65这个变量就变成了3.65000001导致没有输出结果
想知道这个问题的原因以及解决方法

img

第5、6行的变量不要定义成指针

x-*intpart这里有问题,,后面整数部分自动提升为浮点型,导致精度丢失。

建议全部改成double类型(无论是整数部分还是小数部分都用此类型)

整数部分采取.0lf输出方式就丢掉了,小数部分了。

为何不用float因为此类型精度低容易出问题。

img

img

下面代码仅供参考!谢谢!


#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;
    
}