c语言:int型的强制类型转换是按四舍五入吗?

如题所述

作为函数,INT函数指数据库中常用函数中的“向下取整函数”。常用来取一个数中的整数部分。Int是将一个数值向下取整为最接近的整数的函数。为取整函数。

意思是将被转换数直接截取整数部分,不进行四舍五入运算。例如:

int(123.456);//取值为123

int(-123.456);//取值为124

int(1234.56);//取值为1234

扩展资料:

除int外,其他强制转换有:

void:声明函数无返回值或无参数,声明无类型指针,显示丢弃运算结果。(C89标准新增)

char:字符型类型数据,属于整型数据的一种。(K&R时期引入)

int:整型数据,表示范围通常为编译器指定的内存字节长。(K&R时期引入)

float:单精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

double:双精度浮点型数据,属于浮点数据的一种。(K&R时期引入)

_Bool:布尔型(C99标准新增)

_Complex:复数的基本类型(C99标准新增)

_Imaginary:虚数,与复数基本类型相似,没有实部的纯虚数(C99标准新增)

_Generic:提供重载的接口入口(C11标准新增)

修饰关键字:

short:修饰int,短整型数据,可省略被修饰的int。(K&R时期引入)

long:修饰int,长整型数据,可省略被修饰的int。(K&R时期引入)

long long:修饰int,超长整型数据,可省略被修饰的int。(C99标准新增)

signed:修饰整型数据,有符号数据类型。(C89标准新增)

unsigned:修饰整型数据,无符号数据类型。(K&R时期引入)

restrict:用于限定和约束指针,并表明指针是访问一个数据对象的唯一且初始的方式。(C99标准新增)

参考资料:c语言_百度百科

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2019-08-29

强制类型转换int的结果只保留整数部分,不是四舍五入。

例如:

int 3.14,结果为3;

int  3.58,结果也为3。

Int是将一个数值向下取整为最接近的整数的函数。INT是数据库中常用函数中的取整函数,常用来判别一个数能否被另一个数整除

扩展资料

int 函数使用的注意事项:

1、 语法int(number)其中number是需要进行向下舍入取整的实数。

2、 int函数是不进行四舍五入,直接去掉小数部分取整。

3、int函数处理负数的小数时总是向上进位的。

标准规定int的最小取值范围是 -32767 到 32767。

int的取值范围因机器而异,但是一定要大于或者等于 -32767 到 32767。一般来说,int占用一个字的内存空间。因此,字长为 16 位(Bit)的旧式 IBM 兼容机使用 16 位来储存整型int,取值范围是-32768 到 32767 。

目前的个人电脑一般都是 32 位字长的,这些电脑中,int一般也是 32 位的,取值范围是 -2147483648 到 2147483647。对于使用 64 位 CPU 的电脑,使用更多位储存int也是很自然的事情,取值范围当然也会更大。

参考资料百度百科-INT

本回答被网友采纳
第2个回答  推荐于2017-10-10
不是的。
c语言的int型的强制类型转换是截尾取整的。
即int x=(int)3.997;
x的值是3。
第3个回答  2014-10-20
有四舍五入的情况,在你想要保留几位小数的时候,多余的紧接着的一位要四舍五入
不过C里面没有提供四舍五入的函数,不过你可以这样
a = (int)(a*100 + 0.5)/100
这只是一个小技巧,对a的第三位进行四舍五入
比如将55.3351保留2位小数,第三位四舍五入,可以用
a=(a*100+0.5)/100.0或a=(int)(a*100+0.5)/100.0,,,我的问题是,,两个都行吗?有什么区别,我做过实验,貌似没什么区别……追问

是一样的,都是实型啊,第二个式子一个是整形,一个是实型,结果是实型啊

第4个回答  2014-10-20
不会四舍五入,会直接截断取整数部分。本回答被提问者采纳