一个C语言double值减double值问题代码是这样的\x05\x05\x05\x05total=coke+prok+biscuit+milk+orange;\x05\x05\x05\x05printf("应付:%g\n",total);\x05\x05\x05\x05printf("付款:");\x05\x05\x05\x05scanf("%f",&pay);\x05\x05\x05\x05printf("

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/07 11:54:02

一个C语言double值减double值问题代码是这样的\x05\x05\x05\x05total=coke+prok+biscuit+milk+orange;\x05\x05\x05\x05printf("应付:%g\n",total);\x05\x05\x05\x05printf("付款:");\x05\x05\x05\x05scanf("%f",&pay);\x05\x05\x05\x05printf("
一个C语言double值减double值问题
代码是这样的
\x05\x05\x05\x05total=coke+prok+biscuit+milk+orange;
\x05\x05\x05\x05printf("应付:%g\n",total);
\x05\x05\x05\x05printf("付款:");
\x05\x05\x05\x05scanf("%f",&pay);
\x05\x05\x05\x05printf("应找:%g\n",pay-total);
当pay和tota都是定义为double类型时pay-total输出来结果就是付款金额的负的
在scanf("%f",&pay);加了一句printf("%f",pay)输出来的结果就是0.000000,
要是pay定义为float类型 那么pay-total结果就是正确的,这是为什么?

一个C语言double值减double值问题代码是这样的\x05\x05\x05\x05total=coke+prok+biscuit+milk+orange;\x05\x05\x05\x05printf("应付:%g\n",total);\x05\x05\x05\x05printf("付款:");\x05\x05\x05\x05scanf("%f",&pay);\x05\x05\x05\x05printf("
scanf("%f",&pay); 这里%f是用于float的吧?我记得double是%lf.