明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1498|回复: 7

大家帮忙解释一下

[复制链接]
发表于 2004-6-10 21:17:00 | 显示全部楼层 |阅读模式
我编程遇到了这个问题,很是困惑,大家帮忙解决一下:程序中算得ss为4.36332 (fix (/ 340.339 ss)) 得 77

但实际上340.339除以4.36332得78.0.再fix 一下应得78,不知为什么得77. 我试了一下 (fix (/ 340.339 4.36332)) 返回78啊,这是为什么???
发表于 2004-6-10 22:01:00 | 显示全部楼层
怎么会得77呢?你用下面程序算一下 (defun c:try()
(setq ss 4.36332)
(setq AA (fix (/ 340.339 ss)))
)
发表于 2004-6-10 22:11:00 | 显示全部楼层
看不懂楼主返回的到底是77还是78?
 楼主| 发表于 2004-6-10 22:15:00 | 显示全部楼层
你试一下这个: (setq range 1570.8
time 360
ss (/ range time)
)
(setq AA (fix (/ 340.339 ss)))
 楼主| 发表于 2004-6-10 22:17:00 | 显示全部楼层
按道理应该返回78的,但我为什么返回77
发表于 2004-6-10 22:25:00 | 显示全部楼层
(rtos (/ 1570.8 360) 2 14)


你看看这个,其实是显示问题SS可能并不是你的那个数,你看到的只是显示的数字,实际的数字精度比这个高很多的
 楼主| 发表于 2004-6-10 22:27:00 | 显示全部楼层
斑竹高明,确实是精度问题
发表于 2004-6-10 23:57:00 | 显示全部楼层
4楼的数据在取整前其结果是77.9998,当然取整后要返回77。而楼主将SS的小数部分人为截去(4.36333)后其结果为78.000009167,取整后肯定是78。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-11-28 10:45 , Processed in 0.178495 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表