野火论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始


楼主: jianguo314

[原创] creo参数里如何把实数转换为保留一定小数位的字符串

[复制链接]

15

主题

196

回帖

0

威望

工程师

Rank: 3Rank: 3

积分
285
发表于 2020-8-26 23:09 | 显示全部楼层
本帖最后由 yilye 于 2020-8-27 20:35 编辑

IF DD>=0.995
REF=ITOS(DD*100)
ENDIF
IF DD<0.995&DD>=0.095
REF="0"+ITOS(DD*100)
ENDIF
IF DD<0.095&DD>=0.005
REF="00"+ITOS(DD*100)
ENDIF
IF DD<0.005
REF="000"
ENDIF
字符=extract(REF,1,(string_length(REF)-2))+"."+extract(REF,(string_length(REF)-1),2)


这个有点问题,不能确保每个都能四舍五入,比如 9.945=9.94,而不是9.95
回复 支持 反对

使用道具 举报

15

主题

196

回帖

0

威望

工程师

Rank: 3Rank: 3

积分
285
发表于 2020-8-26 23:13 | 显示全部楼层
可将任何小数点后面三位的数字(常用尺寸)四舍五入转化为小数点后面两位数的字符.
备料尺寸常用到.
回复 支持 反对

使用道具 举报

15

主题

196

回帖

0

威望

工程师

Rank: 3Rank: 3

积分
285
发表于 2020-8-27 20:30 | 显示全部楼层
本帖最后由 yilye 于 2020-8-29 21:51 编辑

N=2  (N为需转化的小数位数:0,1,2,3......8  )
XX=ceil((floor((X*(10^(N+1)))/5,0))*5/(10^(N+1)),N)
IF XX>=1
XREF=ITOS(XX*10^N)
ENDIF
IF XX<1&XX>=0.1
XREF="0"+ITOS(XX*10^N)
ENDIF
IF XX<0.1&XX>=0.01
XREF="00"+ITOS(XX*10^N)
ENDIF
IF XX<0.01&XX>=0.001
XREF="000"+ITOS(XX*10^N)
ENDIF
IF XX<0.001&XX>=0.0001
XREF="0000"+ITOS(XX*10^N)
ENDIF
IF XX<0.0001&XX>=0.00001
XREF="00000"+ITOS(XX*10^N)
ENDIF
IF XX<0.00001&XX>=0.000001
XREF="000000"+ITOS(XX*10^N)
ENDIF
IF N==0
A=extract(XREF,1,(string_length(XREF)-N))+extract(XREF,(string_length(XREF)-(N-1)),N)
ELSE
A=extract(XREF,1,(string_length(XREF)-N))+"."+extract(XREF,(string_length(XREF)-(N-1)),N)
ENDIF
IF XX==0
A="0"
ENDIF

这个才能真正做到四舍五入.
回复 支持 反对

使用道具 举报

0

主题

1051

回帖

0

威望

讲师

Rank: 6Rank: 6

积分
1117
发表于 2020-8-31 17:28 | 显示全部楼层
感谢楼主分享!
回复 支持 反对

使用道具 举报

46

主题

567

回帖

39

威望

高工

哈哈

Rank: 4

积分
805

希望之星勋章

QQ
发表于 2020-8-31 17:35 | 显示全部楼层
yilye 发表于 2020-8-27 20:30
N=2  (N为需转化的小数位数:0,1,2,3......8  )
XX=ceil((floor((X*(10^(N+1)))/5,0))*5/(10^(N+1)),N ...

能不能取到0.几的数
Creo/ProE学习交流群826982710
回复 支持 反对

使用道具 举报

15

主题

196

回帖

0

威望

工程师

Rank: 3Rank: 3

积分
285
发表于 2020-9-1 19:03 | 显示全部楼层
本帖最后由 yilye 于 2020-9-1 19:05 编辑
xuez119 发表于 2020-8-31 17:35
能不能取到0.几的数


当然可以,最小可以是0.000001
回复 支持 反对

使用道具 举报

0

主题

1051

回帖

0

威望

讲师

Rank: 6Rank: 6

积分
1117
发表于 2020-11-6 13:38 | 显示全部楼层
谢谢分享
回复 支持 反对

使用道具 举报

0

主题

1051

回帖

0

威望

讲师

Rank: 6Rank: 6

积分
1117
发表于 2020-11-27 09:51 | 显示全部楼层
每天学习一个钟
回复 支持 反对

使用道具 举报

19

主题

566

回帖

20

威望

高工

Rank: 4

积分
710
发表于 2021-5-17 09:38 | 显示全部楼层
参数小数位的提取。
回复 支持 反对

使用道具 举报

0

主题

40

回帖

0

威望

助工

Rank: 2

积分
55
发表于 2021-10-26 19:40 | 显示全部楼层
chenxl423 发表于 2017-5-13 13:41
另一种方式

/*定义小数字有效数字的位数,凑整*/

有BUG,当19.99时,算出来是19.1
回复 支持 反对

使用道具 举报

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

本版积分规则

本站为非营利性站点,部分资源为网友搜集或发布,仅供学习和研究使用,如用于商业用途,请购买正版。站内所发布的资源,如有侵犯你的权益,请联系我们,本站将立即改正或删除。

QQ|手机版|小黑屋|野火论坛(©2007~2024) ( 苏ICP备11036728号-2 )苏公网安备 32039102000103号

GMT+8, 2024-5-4 06:22 , Processed in 0.109877 second(s), 27 queries .

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