文化人的剑 发表于 2005-4-18 15:05:00

$ (rtos (LL 41.0000         3) 2 8)<BR>"41"


请教一下,如果想得到41.000,应该如何

xqyhome 发表于 2005-4-18 16:24:00

FIX

(SETQ A 31.2564)


(fix (+ A 0.5))


31


(SETQ A 31.8564)


(fix (+ A 0.5))


32

ZZXXQQ 发表于 2005-4-18 23:02:00

将DIMZIN改为零:(SETVAR "DIMZIN" 0) 后再用RTOS函数就能得到小数后的位数。

hhc 发表于 2005-4-19 09:27:00

广而告之:


数位长度(包括小数点)在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,就会丢失信息,要另想办法,飞哥已有这个函数

TANER 发表于 2006-1-9 08:35:00

<A href="http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=455456" target="_blank" >http://www.xdcad.net/forum/showthread.php?s=&amp;threadid=455456</A>
页: 1 2 [3]
查看完整版本: 四舍五入