24小时热门版块排行榜    

查看: 595  |  回复: 2

cquccc

铜虫 (正式写手)

[求助] 打印结果出人意料! print 语句 已有1人参与

百度文库下载的《Fortran 77 结构化程序设计》 上有 “:print *,15.4,-321.45“
并说输出结果为:
”︺︺︺︺︺︺15.400000︺︺︺︺︺-321.450000”


我测试结果是:
15.3999996    -321.450012

为什么出现这样的结果,数值变化了?
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangxingge

金虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★
感谢参与,应助指数 +1
cquccc: 金币+5, ★★★★★最佳答案 2014-11-22 21:09:28
打印的结果是对的,如果需要精确到 小数后几位,就加以主动控制。
系统内部总是二进制,实数是 4字节。打印出来看时 系统 做了处理,但 各个不同的系统处理不一样 。
我测试的结果 是  15.40000 -321.4500,说明 我的系统 是 保留7位有效数字。
书上 的 结果 ,说明是 保留到 小数点后面6位。
你的系统处理规则是保留全部的位数,就是直接把二进制处理成十进制,不做 处理 。
2楼2014-11-22 09:53:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

cquccc

铜虫 (正式写手)

引用回帖:
2楼: Originally posted by jiangxingge at 2014-11-22 09:53:05
打印的结果是对的,如果需要精确到 小数后几位,就加以主动控制。
系统内部总是二进制,实数是 4字节。打印出来看时 系统 做了处理,但 各个不同的系统处理不一样 。
我测试的结果 是  15.40000 -321.4500,说明  ...

很有帮助!
3楼2014-11-22 21:09:18
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 cquccc 的主题更新
信息提示
请填处理意见