首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

warning C4244: “=”: 从“double”变换到“float”,可能丢失数据

2012-11-15 
warning C4244: “”: 从“double”转换到“float”,可能丢失数据#includestdio.h#include math.hvoid main

warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
#include<stdio.h>
#include <math.h>
void main()
{
float A,B,C,P,CDH,KDH,JHB,TD,ZJ,SH,SJ,Z,FL,DJ,MULDJ,NM;
printf("请输入长度: ");  
scanf_s("%f",&A);
printf("请输入宽度: ");  
scanf_s("%f",&B);
C=A*B;  
if(C<0.4)  
printf("%f\n",P=2.5);  
else if(C>=0.4&&C<0.8)  
printf("%f\n",P=4.5);  
else if(C>=0.8&&C<1)  
printf("%f\n",P=9);  
else if(C>=1&&C<1.5)  
printf("%f\n",P=13);  
else if(C>=1.5&&C<2)  
printf("%f\n",P=4.5);  
else if(C>=2)  
printf("%f\n",P=C*9);  
else;
{if(A<2)  
printf("%f\n",DJ=3);  
else if(A>=2&&A<3)  
printf("%f\n",DJ=4);  
else if(A>=3&&A<4)  
printf("%f\n",DJ=5);  
else if(A>4)  
printf("%f\n",DJ=6);  
else;
}
{if(A<1)  
  printf("%f\n",MULDJ=1280);  
else if(A>=1&&A<2)  
  printf("%f\n",MULDJ=1420);  
 else if(A>=2&&A<2.5)  
  printf("%f\n",MULDJ=1660);  
else if(A>=2.5&&A<3)  
  printf("%f\n",MULDJ=1900);  
else if(A>=3&&A<4.5)  
  printf("%f\n",MULDJ=2090);  
else if(A>=4.5&&A<=5)  
  printf("%f\n",MULDJ=2560);  
else if(A>5)  
printf("\n\n\n\n\n\n\n\n\n\n警告:长度不可大于5米"); 
else;} 
CDH=0.05*0.09*DJ*A;  
KDH=0.04*0.08*DJ*B;
NM=CDH+KDH;
FL=NM*MULDJ;
printf("木方料价格=%f\n",FL);
JHB=A*B*14;
printf("胶合板价格=%f\n",JHB);
TD=(FL+JHB+P)*0.03;
printf("铁钉价格=%f\n",TD);
ZJ=(FL+JHB+P)*0.03;
printf("底方材料增加费=%f\n",ZJ);
SH=(FL+JHB+P)*0.03;
printf("面板损耗费=%f\n",SH);
SJ=(FL+JHB+P+TD+ZJ+SH) *0.11;
printf("税金=%f\n",SJ);
Z=FL+JHB+P+TD+ZJ+SH+SJ;
printf("木底架单价=%f\n",Z);
}

1>------ 已启动生成: 项目: 00, 配置: Debug Win32 ------
1>正在编译...
1>00.cpp
1>f:\00\00.cpp(50) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>f:\00\00.cpp(51) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>f:\00\00.cpp(57) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>f:\00\00.cpp(59) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>f:\00\00.cpp(61) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>f:\00\00.cpp(63) : warning C4244: “=”: 从“double”转换到“float”,可能丢失数据
1>正在链接...
1>正在嵌入清单...
1>生成日志保存在“file://f:\00\00\Debug\BuildLog.htm”
1>00 - 0 个错误,6 个警告
========== 生成: 成功 1 个,失败 0 个,最新 0 个,跳过 0 个 ==========

[解决办法]
float是单精度的数,而double是双精度的。一把一个双精度的数转成一个单精度的数。很有可能会丢数据的。
------解决方案--------------------


警告没有太大的问题

热点排行