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

2021-03-07 11:01:58 字数 3129 阅读 5446

1楼:跪着作揖

强制类型转换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也是很自然的事情,取值范围当然也会更大。

2楼:匿名用户

作为函数,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标准新增)

_***plex:复数的基本类型(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标准新增)

3楼:听不清啊

不是的。

c语言的int型的强制类型转换是截尾取整的。

即int x=(int)3.997;

x的值是3。

4楼:匿名用户

不会四舍五入,会直接截断取整数部分。

5楼:匿名用户

有四舍五入的情况,在你想要保留几位小数的时候,多余的紧接着的一位要四舍五入

不过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,,,我的问题是,,两个都行吗?有什么区别,我做过实验,貌似没什么区别……

6楼:直接用用户名

不是 是舍弃小数部分

c语言中将一个浮点型赋值给整型时,会不会四舍五入?

7楼:幻翼高达

c语言中将一个浮点型赋值给整型时,不会四舍五入,会直接舍去小数部分的数据,也可以认为是执行了下取整运算。

将浮点数(单双精度)转换为整数时,将舍弃浮点数的小数部分, 只保留整数部分。将整型值赋给浮点型变量,数值不变,只将形式改为浮点形式, 即小数点后带若干个0。注意:

赋值时的类型转换实际上是强制的。

例如执行赋值后,无论5.4还是5.6都会变成5。

8楼:_梦幻阳光

不会的,不过可以写一个函数自己转换啊

#include

int fun(float x)

int main()

打印的为3和4,c语言很灵活的,楼主想要什么几乎都能实现

9楼:匿名用户

不会的,如int x; 如果有 x=4.78; 则x的值是4

10楼:匿名用户

不会,后面的小数就直接没了,只有整数部分了

采纳我哦

11楼:匿名用户

不会的啦,整型的话,1/2=0,而不是0.5或者1,但整型变成浮点型要强制类型转换,不知这么解释明白不。?

12楼:龍__鳳

不会的,看程序的运行结果:

13楼:路过

你好,不会的。浮点型数据赋给整型时,浮点型就会被自动转换成整型,整型只是整数部分。

希望能够帮到你。

14楼:匿名用户

不会,一般是给你强转成整形了,小数位就没了,四舍五入是不存在的

15楼:匿名用户

不会,只会把整数部分赋给整型变量

16楼:匿名用户

不会,比如float a=4.45 那么 printf("%d",a);输入为4,直接把小数点后面的数删去,不是四舍五入

C语言中数据类型转换的方式有几种

1楼 听不清啊 c语言中数据类型转换的方式有两种 自动类型转换和强制类型转换。 简述c语言中数据类型转换有哪几种方法 2楼 匿名用户 c中好像只有强转吧 类型名 待转数据 3楼 匿名用户 强制转换 自动提升 4楼 匿名用户 data type casting 想怎么转就怎么转,没有几种之说,不要死学...

数据类型后面的_t是什么意思,time_t类型是什么意思?c语言里有这个吗、不懂,求解

1楼 匿名用户 是一个结构的标注,可以理解为 type typedef 的缩写,表示它是通过 typedef 定义的, 而不是其它数据类型。 例如uint8 t,uint16 t,uint32 t 等都不是什么新的数据类型,它们只是使用typedef给类型起的别名,对于 的维护会有很好的作用。 ti...

C语言中,指针占用的空间是多大?和指针类型有关系吗

1楼 指针和其指向的数据类型有关系,你可以用sizeof 来做测试 printf the size of char is d n sizeof int printf the size of char is d n sizeof char 另外,指向结构体的指针就要看具体情况了,c语言还有所谓的 对齐...