如题 我的代码是这样
#include
int main()
{
double x,y;
printf("输入数据:");
scanf("%lf",&x);
if(x<1)
y=x;
else if(x>=1&&x<=10)
y=2*x-1;
else if(x>10)
y=3*x-11;
printf("输出结果:x=%lf y=%lf\n",x,y);
return 0;
}
程序没有出现错误。可是当我输入12.23 时候,给我的结果不是y=25.689999 而是
y=25.69 为什么结果小数点的第二位四舍五入了呢
3x-11=12.23*3-11本来就是25.69,不存在四舍五入。
根据输入的数据,然后用公式计算。double操作
当然25.6899999也是有可能的,因为浮点数计算精度误差和转换成10进制本身也有误差,根据编译器、编译环境、计算机环境的不同,有的时候结果存在微小误差,所以输出无论是你的还是题目中的,都是可能的。
把X,Y均定义为double型,然后用if,else语句应该就能实现吧!
正解:
输入数据:12.23
输出结果:x=12.230000 y=25.690000