C语言赋值浮点数时候立即数后面加上f的意义和注意事项
创作时间:
作者:
@小白创作中心
C语言赋值浮点数时候立即数后面加上f的意义和注意事项
引用
CSDN
1.
https://blog.csdn.net/bjbz_cxy/article/details/140432451
在C语言中,常见定义浮点数时会在立即数的后面加上f表明它是一个浮点数:
float a = 3.14159265f;
或者
但是在使用它时应注意一个事情,当你在立即数后面加上f时,编译器会认为它是一个float,当你在用它定义double或赋值时会以float的精度赋值,这会产生一个精度损失的问题,下面是一个示例:
double ft = 0.1234567890123456f;
打印结果:
0.1234567910432816
很明显结果是错误的,可以看到精度从第8位开始就错了,这是因为float的精度根据IEEE 754的标准,它只占7位有效位,为什么只占7位这里给大家补充一下这个知识,在IEE 754的标准里float占4字节,其中23位表示小数点,而23bit位(23^2)最大能表示的数为7位,所以它小数点后最大能表示7位。
当我们把后面的f去掉后在打印一下结果就正确了:
0.1234567890123456
f在c语言里是为了区分单精度和双精度的浮点数数据,这一点大家在开发时应注意,不要因为书写习惯在一些双精度的浮点数里加上了f导致精度丢失了。
热门推荐
张仲景舌诊条文精解:六条经典论述及其临床应用
农村宅基地房屋产权证办理指南:流程、区别与分户分证详解
树林里的丁达尔光怎么拍?7个技巧学起来!
专业健身教练都在偷练的《引体向上好处》,连续坚持8周让你【肌肉爆发】
多角度看五脏六腑的分工与协作
世界关节炎日:上了年纪,小心退行性膝关节炎
人类可能是宇宙中的唯一智慧文明?深度探讨外星生命的可能性与挑战
计算机主板南桥与北桥核心架构概论
银翼杀手经典台词:15句永恒的电影金句
微短剧迎来新变化:从“野蛮生长”到“精品竞合”
冯占海:从抗日将领到人民公仆的一生
智慧灌区信息化管理系统:从政策到实践的全面解析
内存条的构造、原理及性能参数
福建这座低调的千年古城,与凤凰古城齐名,可惜知道的游客却不多
指甲上的这些变化,真的能反映健康状况吗?
怎么给女朋友足够的安全感
视频云流化过程、好处以及云流化PaaS平台介绍
浙江11城GDP新格局!杭州跨上2万亿台阶,金华紧追台州
📚一座府邸半部清史——恭王府最全攻略
清华研究:烟草影响生育力与妊娠结果 控烟助力人口高质量发展
太阳穴和眉尾处长痘应该如何处理
迈向新质生产力,衢州科技小院如何做出科技大文章?
救护车收费标准详解:从基础费用到特殊服务费
内存频率和容量哪个更重要
头孢过敏起红疹图片
陈皮的采集时间及制作方法
日本“米骚动”折射国际粮食市场变局风险
明朝与朝鲜的和亲外交——"贡女"制度
还没医学院,湖南大学已坐拥两家三甲附属医院了
老年性黄斑变性怎么办?试试中医治疗