永发信息网

float f=2.0 print( "%d", (f+2.5)) 结果为什么是零

答案:2  悬赏:70  手机版
解决时间 2021-03-01 12:48
float f=2.0 print( "%d", (f+2.5)) 结果为什么是零
最佳答案
IEEE 国际标准 for Binary Floating-Point Arithmetic,计算机float 型 机内数 占位是:
31 bit 符号位,30-23 bit 指数(阶码),22-0 bit 小数(数码)
(f+2.5) 是 float 型,用 IEEE 国际标准 表示。

整型数,正数用原码,负数用补码表示。

print( "%d", 就是把 IEEE 标准 表示的float 型数 按 整型数 解释 输出,所以结果是 0。
如果 用 print( "%d", (int) (f+2.5)) 就不会错了。

至于 float 4.5 内存里是什么样的,你可以用 联合体 声明 一个 float 和 一个 char [4] 数组,让 float 元素等于 4.5,再把 char [4] 打印出来看,就能分析出 为什么整型数得零。
全部回答
你好! 因为用整数格式输出浮点数,结果并不是浮点数的整数值 仅代表个人观点,不喜勿喷,谢谢。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
关于计算机二级ACCESS的问题·考过的人进来·
江南工矿这个地址在什么地方,我要处理点事
交税英语怎么说
【请柬格式】请柬常见的格式有()。
空桑尼达是啥意思
程子村怎么去啊,有知道地址的么
8.9×1.5÷1.5×2简
谁有啪啪三国玩的好的不要的号
能够统一天下的秦始皇,下令修筑了举世闻名的
郑州到杭州的高铁是几点
晨旭双语幼儿园在什么地方啊,我要过去处理事
有人想给我介绍对象,我不想谈,怎么没委婉地
麻将机什么牌子好 5分
华为穿戴,华为运动有没有PC版本的
医院呼叫信号装置使用的交流工作电压范围应是
推荐资讯
求~霹雳日月《素还真和谈无欲》和双邪《一剑
做了吸脂手术后要注意什么?
白天是不是不能喝柠檬水,听说感光,这光指什
芒果俱乐部我想知道这个在什么地方
电压降怎么算
单选题I________hopethatyourmotherwillbe
不做感情的落花,落花什么意思
房子老是发出嘣的声音
请问:日暮相关何处是,烟波江上使人愁。相关
张记牛肉胡辣汤怎么去啊,有知道地址的么
大众速腾加装导航后视跳屏
长沙梁怎么去啊,有知道地址的么
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?