乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 183|回复: 10

[编程交流] 为什么没有进位了???

[复制链接]

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 09:57:00 | 显示全部楼层 |阅读模式
搞不懂在编辑器里运行下来没有进位,一行行运行也没进位
命令行里单独去运算又进位了
其他的图运行都良好,今天突然间发现这个不进位了

  1. (defun C:33 (/ SS S1 Q1 D Q2 Q3)
  2. (setq ss (entsel "\n选择多段线: "))
  3.   (setq s1 (car ss));SS为entsel多线段
  4.   (command "area" "e" s1)
  5.   (setq q1 (getvar "area"))
  6.   (setq d (getpoint "\n 请点取面积所放的位置:"))
  7.   (setq q2 (* (/ q1 6000) 9))
  8.   (setq q1 (rtos q1 2 2))
  9.   (setq q2 (rtos q2 2 3))
  10.   (setq q3 (strcat "地块面积S=" q1 "平方米 合" q2 "亩"))
  11.   (entmake (list '(0 . "TEXT")(cons 1 Q3)(cons 10 d)(cons 40 1)(cons 62 3)(cons 7 "宋体")))
  12. )
回复

使用道具 举报

61

主题

718

帖子

13

银币

中流砥柱

Rank: 25

铜币
960
发表于 2022-8-3 08:46:00 | 显示全部楼层

_$ (setq real 35.2950)
35.295
_$ (rtos real 2 2)
"35.30"
_$ (setq real(- 35.2950 1e-5))
35.295
_$ real
35.295
_$ (rtos real 2 2)
"35.29"
  1. (defun myrtos2(real n / a)
  2.   (setvar'dimzin 0)
  3.   (rtos(+ real(/ 0.5(expt 10(1+ n))))2 n))

回复

使用道具 举报

188

主题

1652

帖子

31

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2391
发表于 2022-8-2 10:06:00 | 显示全部楼层

rtos是有一个变量控制的;;162.2 [功能] 保留小数位数(四舍五入)
;|(rtos 数 mode 小数位数)
mode
1  Scientific
2  Decimal
3  Engineering (feet and decimal inches)
4  Architectural (feet and fractional inches)
5  Fractional
|;
;;示例1 保留一位小数,四舍五入(HH:rtosr1 2.555 1);"2.6"
;;示例2 取整数,四舍五入(read(HH:rtosr1 215.46 0)),返回215
;;示例3 十位数,四舍五入(* (read(HH:rtosr1 (/ 215.46 10) 0)) 10),返回220
;;示例4 保留一位小数,四舍五入(read(HH:rtosr1 215.46 1)),返回215.5
(defun HH:rtosr1 (RealNum n / DIMZIN1 SHORTREAL1)
  (setq DimZin1 (getvar "DIMZIN"))
  (setvar "DIMZIN" 0)
  (setq ShortReal1 (rtos RealNum 2 n))
  (setvar "DIMZIN" DimZin1)
  ShortReal1
)
回复

使用道具 举报

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 10:07:00 | 显示全部楼层

截图放在此处了
懂的,有时间的帮忙解答一下

pp2r0uzlfbc.png

pp2r0uzlfbc.png


x34fmpf3lbu.png

x34fmpf3lbu.png

回复

使用道具 举报

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 10:26:00 | 显示全部楼层

感谢老师抽空解惑
回复

使用道具 举报

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 10:58:00 | 显示全部楼层

系统参数都看了,都是初始值。同一幅图里面29.1278的线出来的是29.13
35.2950出来的是35.29
99.9450出来的是99.94
26.8290出来的是26.83
38.8859出来的是38.89
感觉这个逢5不进位啊
回复

使用道具 举报

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 11:55:00 | 显示全部楼层

整懵了
1.9450进位了
99.9450却不进位
1.2750,1.2650,1.2651,1.2652全都进位,1.2950又不进
排查了和前后奇偶性的关系
请点击此处下载

请先注册会员后在进行下载

已注册会员,请先登录后下载

文件名称:0b0hnzgd4og.dwg 
下载次数:0  文件大小:79.95 KB  售价:2银币 [记录]
下载权限: 不限 以上或 Vip会员   [开通Vip]   [签到领银币]  [免费赚银币]



回复

使用道具 举报

188

主题

1652

帖子

31

银币

顶梁支柱

Rank: 50Rank: 50

铜币
2391
发表于 2022-8-2 12:02:00 | 显示全部楼层

“四舍五入”.进一的概率为5/9
奇进偶不进,就是解决这种情况.实际上就是“四舍六入”.当末尾为5时,看5前面一位,奇进偶不进
举例子说明如下:
奇进偶不进,就像1.25,因为2是偶数,所以是1.2。又像1.35,因为3是奇数,所以是1.4
回复

使用道具 举报

2

主题

10

帖子

4

银币

初来乍到

Rank: 1

铜币
17
发表于 2022-8-2 12:11:00 | 显示全部楼层

1.9450进位了,99.9450没有进
2.9450不进,3.9450也不进
我试了一堆的数,真没有发现是奇进偶不进。我们有个标注程序是奇进偶不进。那个我知道
回复

使用道具 举报

61

主题

718

帖子

13

银币

中流砥柱

Rank: 25

铜币
960
发表于 2022-8-2 14:26:00 | 显示全部楼层

大概率是实数精度问题,看着是99.9450,实际可以能是99.944999999999,那么它确实不应该进位
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-1-31 07:30 , Processed in 0.278749 second(s), 88 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表