#include <stdio.h>
int main ()
{
int a,b;
printf ("请输入利润:\n");
scanf ("%d\n", &a);
if (a>1000000) b=(a-1000000)*0.01;
else if (a>600000) b=(a-600000)*0.015+33500;
else if (a>400000) b=(a-400000)*0.03+27500;
else if (a>200000) b=(a-200000)*0.05+17500;
else if (a>100000) b=(a-100000)*0.075+100000;
else b=a*0.1;
printf ("获得的利润为%d", b);
return 0;
}
改后 为什么计算某些值时与结果差1?比如输入450000 结果为应该为29000而运算结果却为28999?这是为什么?
追答C/C++里
浮点数转整形取浮点数的整数部分, 例:(int)1.999999999 = 1
说的这个我知道,在上面程序中需要怎么改?
追答#include
int main ()
{
int a=0;
double b=0.0;
printf ("请输入利润:\n");
scanf ("%d\n", &a);
if (a>1000000) b=(a-1000000)*0.01;
else if (a>600000) b=(a-600000)*0.015+33500;
else if (a>400000) b=(a-400000)*0.03+27500;
else if (a>200000) b=(a-200000)*0.05+17500;
else if (a>100000) b=(a-100000)*0.075+100000;
else b=a*0.1;
printf ("获得的利润为%0.2f", b);
return 0;
}
谢谢!