找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 20127|回复: 6

[原创] 函数运算中的四舍五入

[复制链接]

23

主题

566

回帖

53

威望

高工

积分
786

希望之星勋章

QQ
发表于 2016-7-19 10:51 | 显示全部楼层 |阅读模式
本帖最后由 lanxueyue 于 2016-7-19 11:03 编辑

昨天在计算齿轮的跨齿数的时候 要 用到四舍五入取整  看似一个简单的问题,彻底把我搞晕
不能简单的用 itos()  函数   因为 itos() 之后 所得的是 字符串  不能被后续的运算所引用

如 a= itos(1.38)  所得的  1  即a=1  这里的 1 代表的是字符了   而不是数值
如有公式  b=a+a  在这里  破衣只会提示你 错误

我就用  floor()  和  ceil()  两个函数来做  结果也做出来了  就是麻烦些

跨齿数1=(压力角/180)*齿数+0.5           /*这里计算得  跨齿数1=6.277778
中间变量01=floor(跨齿数1-0.5)                         /*   中间变量01= 跨齿数1-0.5 之后向下取整
if(中间变量01!=floor(跨齿数1))                          /*    中间变量01与 跨齿数1直接向下取整 进行比较     
跨齿数=floor(跨齿数1)                                       /*   两者不相等  跨齿数1直接向下取整 赋值  跨齿数
else
跨齿数=ceil(跨齿数1)                                         /*    两者相等     跨齿数1直接向上取整 赋值给 跨齿数
endif

这里加上floor()  和  ceil() 的取整位数后,和调整0.5中的小数位   可以得,任意位四舍五入了


论坛中  也有坛友提到用

参数中设置n为你想四舍五入的小数点位数
然后a是你想要四舍五入的数
然后输入这个函数:
b=ceil((floor((a*(10^(N+1)))/5,0))*5/(10^(N+1)),N)

同样也可以  就是我看看到晚了  要不我也不琢磨得这么麻烦了

评分

参与人数 1威望 +1 收起 理由
06985953 + 1 感谢分享

查看全部评分

7

主题

1017

回帖

78

威望

讲师

积分
1457

热心助人勋章希望之星勋章

QQ
发表于 2016-7-19 12:11 | 显示全部楼层
大神级别                  每每看到函数就头晕
如果我们生存在冰冷的世界依然难改变,至少我还拥有你化解冰雪的容颜······
回复

使用道具 举报

57

主题

1269

回帖

224

威望

版主

研究员

积分
1947

斑竹勋章希望之星勋章热心助人勋章优秀会员勋章

QQ
发表于 2016-7-19 17:59 | 显示全部楼层
本帖最后由 1051083108 于 2016-7-19 18:09 编辑

b=mod(a,1)
if b>=0.5
   c=ceil(a)
else
   c=floor(a)

a是你要四舍五入的数值,b是中间变量,c是你要的结果,这是最直观的方法,若要保留小数位数,可以将a乘以10^n,n即为要保留的小数位,但要注意c需要相应的除以10^n
他山之石,可以攻玉||绳锯木断,水滴石穿

拒绝回短消息,有问题请发帖。

严惩灌水,坛友自重,请看发帖规范
回复 2 0

使用道具 举报

29

主题

279

回帖

5

威望

工程师

积分
361
发表于 2020-11-5 20:43 | 显示全部楼层
1051083108 发表于 2016-7-19 17:59
b=mod(a,1)
if b>=0.5
   c=ceil(a)

简洁实用
回复

使用道具 举报

2

主题

64

回帖

1

威望

助工

积分
90
发表于 2022-4-4 08:48 | 显示全部楼层
1051083108 发表于 2016-7-19 17:59
b=mod(a,1)
if b>=0.5
   c=ceil(a)


b=mod(a,1)
if b>=0.5
   c=ceil(a)
else
   c=floor(a)
endif

有两括号是中文的,软件无法识别,结尾需要 endif,不然会报错——(免得像我这样的小白复制粘贴后还要花半个小时找原因)
回复

使用道具 举报

0

主题

111

回帖

0

威望

助工

积分
120
发表于 2022-8-10 23:20 | 显示全部楼层
学习
回复

使用道具 举报

0

主题

117

回帖

0

威望

助工

积分
142
发表于 2023-7-6 11:58 | 显示全部楼层
感谢楼主,感谢5楼
回复

使用道具 举报

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

本版积分规则

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

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

GMT+8, 2024-11-23 10:11 , Processed in 0.168031 second(s), 24 queries .

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