c语言中 赋值运算中,赋值号两边的数据类型不同时

C语言中将实型数据赋给整型数据时小数部分是四舍五入还是直接舍去?
1、赋值运算中如果赋值号“=”两边的数据类型不同,赋值号右边的类型转换为左边的类型,这种转换是截断型的转换,不会四舍五入。 比如i是整型变量,则i=2.99;结果i的值为2
2、赋值运算中,赋值号两边的数据类型不同时,赋值号右边量的类型将转换为左边量的类型。如果右边量的数据类型长度比左边长时,将丢失一部分数据,这样会降低精度,丢失的部分按四舍五入处理。

哪个对 ? 求解

1、赋值运算中如果赋值号“=”两边的数据类型不同,赋值号右边的类型转换为左边的类型,这种转换是截断型的转换,不会四舍五入。 比如i是整型变量,则i=2.99;结果i的值为2

直接舍去
#include <stdio.h>
int main()
{
int i;
i = 2.99;
printf("%d", i);
return 0;
}
测试结果为2.追问

双精度向单精度转换时呢?

追答

双精度表示的数字要比单精度大很多,超出范围会被截断。
建议你看一下《C语言程序设计现代方法》,里面写的挺全的。
网上也有电子档。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-17
1 第一个是对的
相似回答