鱼C论坛

 找回密码
 立即注册
查看: 8182|回复: 15

是否强制类型转换不是四舍五入?

[复制链接]
发表于 2015-7-27 11:44:28 | 显示全部楼层 |阅读模式
10鱼币
#include <stdio.h>
void main()
{
        float f=5.75;
        printf("(int)f=%d,f=%f\n",(int)f,f);
}

不是说四舍五入吗?应该输出的是(int)f=6,f=5.750000啊,第一个应该是6啊
但实际输出的是(int)f=5
为什么?

最佳答案

查看完整内容

float类型的能表示的数的精度为8位,即最多可以表示8位小数。而int是整形,是不能表示小数的。在进行强制类型装换时,float类型尾部的小数应该会被抹掉。所以是5。装换的时候并不是按四舍五入的原则的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 11:44:29 | 显示全部楼层
float类型的能表示的数的精度为8位,即最多可以表示8位小数。而int是整形,是不能表示小数的。在进行强制类型装换时,float类型尾部的小数应该会被抹掉。所以是5。装换的时候并不是按四舍五入的原则的!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 12:04:49 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 12:05:22 | 显示全部楼层
顶啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 12:05:54 | 显示全部楼层
啊啊啊啊啊啊啊啊啊啊啊啊啊啊顶
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 12:07:16 | 显示全部楼层
0000000000000
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 12:28:51 | 显示全部楼层
不四舍五入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 13:28:20 | 显示全部楼层
只取整数部分
小数点后的自动忽略
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 22:22:50 | 显示全部楼层
是向0取整,而不是四舍五入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-27 22:33:52 | 显示全部楼层
强制类型转换是切掉小数点后面的,不是四舍五入。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-7-28 19:00:46 | 显示全部楼层
你想多了 这个是直接删掉不是四舍五入
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-5 11:37:11 | 显示全部楼层
Int类型不是四舍五入,而是直接截取整数部分,所以会是5
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-5 15:32:11 | 显示全部楼层
我觉的你的问题是,你听谁说的是四舍五入。。。。只保留整数部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-6 20:14:53 | 显示全部楼层
int是整型变量,只取前面整数部分。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-8 21:22:40 | 显示全部楼层
不是四舍五入吧,直接截断了吧,只留下整数部分了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2015-8-9 09:07:39 | 显示全部楼层
只取整数部分
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-26 05:37

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表