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导致精度丢失了。
热门推荐
膈肌引起的呼吸困难怎么办
丝路先驱:张骞出使西域的成果与影响
吕布之死:一代英雄的悲剧结局
接近完美:37部直逼满分的美剧,每一部都是经典
三部让人欲罢不能的经典历史美剧推荐
美声唱法和民族唱法究竟有何区别
团队如何协调X理论与Y理论
水质钾离子检测有哪些方法
孩子需要不断的赏识与鼓励,这对他们的成长有多重要?
双侧鼻甲肥大是什么意思
Excel中让单元格里的部分字体变颜色的多种方法
汽车保养一次多少钱需要多久?
如何根据尿液 了解身体健康 需注意这些信号
锈锚港赛季超稀有英雄置换优先级:蝴蝶、花姐、船长、奈拉
烤肉拌饭的热量含量是多少
逼近4000人!基金经理开年扩容,哲学硕士和广告经理都来了……
全球首创绿色农药的20年征程
跑步的正确姿势和要领有哪些
20以内加减法口诀表及算术技巧详解
雅思写作评分标准及评分细则
戚继光:情报战中的战神,如何碾压倭寇
套利原则的应用场景有哪些?在这些场景中如何有效运用套利原则?
什么茶咖啡因最高?
玄学到底有啥用?
垂柳和柳树有什么区别
血管痉挛怎么办
十大类理发工具盘点 理发店常用的十种美发工具有哪些
空腹运动,燃脂更多?空腹运动到底对身体的影响是怎样的?
理解反函数
中国短跑接力队冲入巴黎奥运男子4×100米接力决赛