warning C4244: '=' : conversion from 'double' to 'int',
- 求大神 warning C4244: '=' : conversion from 'double' to 'int', possible loss of data是什么意思?
- warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
- warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data 老出现呢 请求解答
- warning C4244: '=' : conversion from 'double' to 'int', possible loss of data 这个错误在哪啊?
求大神 warning C4244: '=' : conversion from 'double' to 'int', possible loss of data是什么意思?
#include <stdio.h>
#include <math.h>
void main(void)
{
double a,b;
printf("请输入该设备的价格:");
scanf("%f", &a);
if(a<=1000)
b=200;
else
if(a>1000&&a<=2000)
b=200+(a-1000)*0.1;
else
if(a>2000&&a<=4000)
b=300+(a-2000)*0.15;
else
if(a>4000&&a<=8000)
b=600+(a-4000)*0.2;
else
b=1400+(a-8000)*0.25;
printf("维修费为:%f\n", b);
}
这是我对你的程序进行修改后的, 将a,b定义为double类型, scanf("%f", &a);这里a之前要加&,还有将%%这个该成&&,你可以对照我的程序在修改一下。
warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data
sqrt函数在库中定义的类型是double型,因此计算得到的p,x1,x2应均为double型。
方法一:
改为:
#include "stdio.h"
#include "math.h"
void main()
{
int a,b,c;
double p,x1,x2;
scanf("请输入a,b,c的值为%d %d %d",&a,&b,&c);
p=sqrt(b*b-4*a*c);
x1=(-b+p)/2*a;
x2=(-b-p)/2*a;
printf("%d,%d",x1,x2);
}
方法二:强制类型转换
改为:
#include "stdio.h"
#include "math.h"
void main()
{
int a,b,c,p,x1,x2;
scanf("请输入a,b,c的值为%d %d %d",&a,&b,&c);
p=(int)(sqrt(b*b-4*a*c));
x1=(-b+p)/2*a;
x2=(-b-p)/2*a;
printf("%d,%d",x1,x2);
}
此方法中把开方得到的数据强制转化成int型,不建议~~~
warning C4244: '=' : conversion from 'double ' to 'int ', possible loss of data 老出现呢 请求解答
fabs功能:求浮点数x的绝对值 而你是int
warning C4244: '=' : conversion from 'double' to 'int', possible loss of data 这个错误在哪啊?
scanf("%d",&m);k=sqrt(m)
这里强制转换了
试下把K声明为double型
这里应该只是一个警告吧,应该运行的了。