找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 6909|回复: 4

[原创] 根据质量大小切换单位并输出含单位的质量

[复制链接]

4

主题

351

回帖

8

威望

工程师

积分
499
发表于 2020-11-13 16:55 | 显示全部楼层 |阅读模式
本帖最后由 山甲水錆 于 2020-11-16 10:20 编辑

1.在参数栏中新建“cmass”的参数
2.在关系中添加一下公式
if pro_mp_mass>1
/*判断质量是否大于1(Kg)
mass=itos(floor(pro_mp_mass))+"."+itos(mod(pro_mp_mass*10,10))+itos(mod(pro_mp_mass*100,10))+"kg"
/*若是,则输出质量的整数+小数点+十分位的值+百分位的值+Kg
else
mass=itos(ceil(1000*pro_mp_mass))+"g"
/*否则,输出质量的整数位(四舍五入)+g
endif
3.在图纸相应栏中直接调用&cmass,即可
青,取之于蓝,而青于蓝;
冰,水为之   ,而寒于水。
                                                                  -《荀子·劝学》

4

主题

484

回帖

46

威望

高工

积分
722
发表于 2020-11-13 23:32 | 显示全部楼层
你这个公式存在明显的错误,itos()函数只对非零数字有效,当出现带0的小数位就会出错。
例如1.01,套进你的公式就会出现1.1kg的结果。正确的方法应该用extract()函数辅助。
回复

使用道具 举报

28

主题

643

回帖

12

威望

高工

积分
918
发表于 2020-11-14 11:44 | 显示全部楼层
mark一下 学习
回复

使用道具 举报

4

主题

351

回帖

8

威望

工程师

积分
499
 楼主| 发表于 2020-11-14 17:52 | 显示全部楼层
本帖最后由 山甲水錆 于 2020-11-16 10:26 编辑
dccdty 发表于 2020-11-13 23:32
你这个公式存在明显的错误,itos()函数只对非零数字有效,当出现带0的小数位就会出错。
例如1.01,套进 ...


确实有这个问题,由于itos无法输出0,那修正改函数为:
if pro_mp_mass>1
/*判断质量是否大于1(Kg)
mass=itos(floor(pro_mp_mass))+"."+extract(itos((pro_mp_mass-floor(pro_mp_mass)+1)*100),2,2)+"kg"
/*若是,则输出质量的整数+小数点+十分位和百分位的值+Kg
else
mass=itos(1000*pro_mp_mass)+"g"
/*否则,输出质量的整数位+g
endif
青,取之于蓝,而青于蓝;
冰,水为之   ,而寒于水。
                                                                  -《荀子·劝学》
回复

使用道具 举报

29

主题

279

回帖

5

威望

工程师

积分
361
发表于 2020-11-16 18:16 | 显示全部楼层
谢谢楼主分享好方法
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-22 23:09 , Processed in 0.147668 second(s), 24 queries .

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