明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
123
返回列表 发新帖
楼主: wjm3

四舍五入

  [复制链接]
发表于 2005-4-18 15:05 | 显示全部楼层
$ (rtos (LL 41.0000 3) 2 8)
"41" 请教一下,如果想得到41.000,应该如何
发表于 2005-4-18 16:24 | 显示全部楼层

FIX

(SETQ A 31.2564)


(fix (+ A 0.5))


31


(SETQ A 31.8564)


(fix (+ A 0.5))


32
发表于 2005-4-18 23:02 | 显示全部楼层
将DIMZIN改为零:(SETVAR "DIMZIN" 0) 后再用RTOS函数就能得到小数后的位数。
发表于 2005-4-19 09:27 | 显示全部楼层
广而告之:


数位长度(包括小数点)在17位之内,用rtos和read不会丢失信息,如要对一个数保留8位小数:


(setq a (read (rtos 123.123456789 2 8)))        ,


用编辑器中的"检验"工具或在命令行执行此表达式,将返回123.123,看似丢失了信息,其实是显示的问题.它受系统变量DIMDEC影响,将DIMDEC值设得高些,就会显示的多些,而系统内部保存的仍然是8位小数,不信可做以下测试:


(rtos a 2 8),将返回123.12345678,


可见仍然是8位小数.包括系统在运算过程中都是按规定的位数运算.但数位超过17,就会丢失信息,要另想办法,飞哥已有这个函数
发表于 2006-1-9 08:35 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-29 01:12 , Processed in 0.319893 second(s), 19 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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