鱼C论坛

 找回密码
 立即注册
查看: 3004|回复: 1

强制类型转换与常量类型转换相关

[复制链接]
发表于 2018-5-4 11:23:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
sabi小白想知道这个强制转换为何结果不同
double c=(float)a+(float)b;//输出3.265050
float d=(float)a+(float)b;//输出3.2650249
也就是说变量float d的右边在运算过程中完全没有进行类型转换,依旧用double a和double b带入的。而把左值切换成double就按照需要的结果输出了。
好奇为何会这样,学艺不精请大神轻点喷。
一个大傻逼.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-5-5 16:21:04 | 显示全部楼层
其实这是一个精度的问题,我们都知道在计算机里的浮点是都是以一个近似值的形式来存放,所以有一点精度的损失是很正常的,
其次 double 是一个双精度的数据  ,float 是一个单精度的数据, 所以他么的数据有一点精度的偏差是很正常的(只要这个偏差不要太大就好了, 一般是 ±0.000001)。
1.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 11:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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