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导致精度丢失了。
热门推荐
东平知政丨国家历史文化名城佛山:30年,练就保护传承历史文化真功夫
为什么说跨里海际运输走廊将成为连接东西方的桥梁?
幽门螺旋杆菌感染,你了解多少?
甲状腺治疗费用详解
隋炀帝杨广:功过交织的悲剧帝王,毁灭自己,成就大唐!
想要种植林下黄精?这些关键技术一定要知道!
肠易激综合征的四种类型及其症状表现
肠易激综合征
生理期时,喝红糖水真的能缓解痛经吗?真相是……
上吐下泻怎么缓解
派出所不给出具立案回执怎么办
“天价墨宝”直播间卖出“白菜价”,这些“书画大师”都啥来头
“王某教授胜诉,深圳禁摩全面叫停”说法有误(附判例、法规)
如何正确修剪蓝莓——剪枝时间和技术详解(从剪枝时间到技术,教你成为蓝莓专家)
如何正确修剪蓝莓——修剪时间和技术详解(从修剪时间到技术,教你成为蓝莓专家)
历代全球票房前五变迁史(1984年至今)
函授获得的学历国家承认吗认可度高吗
如何构建一个可扩展的模块化系统架构?
仁怀:“巡回法庭+法治讲座”为青少年成长护航
新三板:中国资本市场的"创新试验田"
全国多地中小学探索“躺平式”午睡,超九成小学生睡眠不足?
硬盘格式化后的数据拯救:数之寻软件实战指南
如何定期跟踪和评估投资绩效以优化投资策略
如何设置合理的止盈策略?这种策略的实施需要考虑哪些因素?
晚上热醒出汗是怎么回事
看,首张来自海洋最深处的生态系统图,由中国科学家绘制
黄酒质量检验需要检验哪些指标?
用修复胶带给巴塔哥尼亚羽绒服打补丁
贺州旅游攻略:十大景点全解析
什么是羊皮纸?了解羊皮纸的历史与应用