为什么n和N的值不一样啊?

主要是我明明写了n=N;这个步骤,但是我不懂为什么会n是43而N明明是44的。求解答详细,谢谢。

img

double在计算时有时会发生精度问题,改用float就正常了

img


#include <stdio.h>

int main(){
    int n;
    float N;
    scanf("%f",&N);
    n=N;
    N-=n;
    N*=100;
    n=N;
    printf("%d,%.2f\n",n,N);
}

因为一个是int类型的,一个是double类型的,因为c++自身某些原因,转换时会出错

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632