明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2360|回复: 7

[基础] 如何将一个实数保留小数后2位 并四舍五入呢?

[复制链接]
发表于 2010-12-26 08:45:45 | 显示全部楼层 |阅读模式
如何将一个实数保留小数后2位 并四舍五入呢?
召唤各种大神~~  帮帮小弟~~
发表于 2010-12-26 09:11:30 | 显示全部楼层
Command: (rtos 12.34567 2 3)
"12.346"
Command: (rtos 12.34567 2 2)
"12.35"
Command: (rtos 12.34567 2 1)
"12.3"
发表于 2010-12-26 09:30:36 | 显示全部楼层
本帖最后由 Gu_xl 于 2010-12-26 09:32 编辑

回复 icefrog 的帖子


  1. ;;;gxl-NumJD1 Num1 Jd 按数字修约原则
  2. 数字保留小数点位数
  3. ;|数字修约原则
  4. 1. “四舍六入五成双” 例:3.148-3.1,0.736-0.74,75.5-76         
  5. 当测量值中被修约的数字是5,而其后还有数字时,进位。 如:2.451-2.5
  6. 一次修约。  如:13.4748-13.47
  7. |;
  8. ;(gxl-NumJD1 47.7451 2) 返回 47.75
  9. ;(gxl-NumJD1 47.745 2) 返回 47.74
  10. ;(gxl-NumJD1 47.7351 2) 返回 47.74
  11. ;(gxl-NumJD1 47.735 2) 返回 47.74
  12. (defun gxl-NumJD1 (Num JD / Num1 Num2 Num3 a b c d)
  13.   (if (> Num 0)
  14.     (setq d 0.5)
  15.     (setq d -0.5)
  16.     )
  17.   (setq Num1 (expt 10. JD))
  18.   (setq Num2 (* Num1 10.)
  19.         Num3 (* 10. Num2)
  20.         )
  21.   (setq a (fix (* Num Num1))
  22.         b (fix (* Num Num2))
  23.         c (fix (* Num Num3))
  24.         )
  25.   (if (= (rem b 10) 5)
  26.     (if (/= (rem c 10) 0)
  27.       (/ (fix (+ (* Num Num1) d)) Num1)
  28.       
  29.       (if (= (rem a 2) 0)
  30.         ;;;直接四舍五入
  31.         ;(/ (fix (+ (* Num Num1) d)) Num1)
  32.         (/ (fix (* Num Num1)) Num1)
  33.         ;;;奇进偶不进
  34.        (/ (fix (+ (* Num Num1) d)) Num1)
  35.      )
  36.       )
  37.     (/ (fix (+ (* Num Num1) d)) Num1)
  38.     )
  39.   )
发表于 2010-12-26 13:00:28 | 显示全部楼层
http://bbs.mjtd.com/thread-84780-1-1.html
最后一题的题目 试着把你的要求扩展一下。
发表于 2010-12-26 17:40:26 | 显示全部楼层
学习!谢谢Gu_xl
发表于 2010-12-26 17:53:59 | 显示全部楼层
还可以用判断长度的方法,也可以实现,这要看你的要求。。。
发表于 2010-12-26 19:18:19 | 显示全部楼层
;如下写法也可
(setvar "dimzin" 0)                        ;rtos时保留小数位数
  (setvar "dimazin" 0)                        ;rtos时角度保留小数位数
(if        (>= ed5-st 100.0)
      (setq ed5-st (rtos ed5-st 2 1))
      (setq ed5-st (rtos ed5-st 2 2))
    )
发表于 2010-12-27 08:58:27 | 显示全部楼层
谢谢楼上
学习了
7楼的方式使用较多
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-10-2 18:26 , Processed in 0.160704 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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