您的位置:

包含c语言从double到int数据丢失的词条

本文目录一览:

C程序啊,老是说conversion from 'double ' to 'int ', possible loss of data

C程序conversion from 'double ' to 'int ', possible loss of data,是设置错误造成的,解决方法如下;

1、首先在电脑中,使用鼠标双击打开Dev C++软件,如图所示。

2、打开Dev C++软件之后,点击新建一个源代码,如图所示。

3、然后键入代码,如下图所示。

4、接着点击页面上方的运行选项,如图所示。

5、这时可以看到运行的结果为:100.388000,精确到小数点后六位数,如图所示,就可以了。

求解:为何程序进行double到int的转换出错 C语言

double是双精度浮点型,int是整型,只能int转double,而double转int肯定不行啊,非要转的话,要强制类型转换,但数据会丢失。

c语言求素数哪里错了,为什么显示错误是conversion from 'double' to 'int', possible loss of data

k=sqrt(m);主要是针对这句话说的。

m经由sqrt函数开方所得应该是double类型数据,却用int类型的k接着。

错误的意思就是double转成int可能会丢失数据精度。

可以运行,如果你想避免这个错误的话,把k定义成double类型就可以了。

c语言中conversion from 'double ' to 'int ', possible loss of data

你前面声明 了 sum 和 d 是 int 型。

sum=(double)a*0.0315; 尽管你 用了 (double) 强制转换,但结果会转回 int 型,赋给 sum; 这样,小数点一下数值全都略去了。带来误差。另外,如果 a 数值较大,a*0.0315 超出 int 型 允许的最大值,那么数会超界 变负数,也带来误差。

d 也有同样问题。

你应当 改用 double 型。相应的输入输出格式 用 %lf。

当然,如果 你的结果 都正确,说明数值范围恰好满足 既无小数,也没超界,那么你可以加上 (int) ...; 例如:

sum= (int)( (double)a*0.0315);

d= (int) ( (double)a*0.0363 );

sum = sum + d;

这样就没有警告信息了。

C语言 double转换成int时精度丢失?

是的,比如:2.1035 转化为int就成了 2,小数部位就丢失了,转化时要用强制转化,比如:

double a = 2.01365;

int b = (int)a;