找回密码
 注册
Simdroid-非首页
查看: 77|回复: 7

[问题讨论] 如何去一个数值附近的偶数

[复制链接]
发表于 2010-6-29 10:45:37 | 显示全部楼层 |阅读模式 来自 浙江杭州
比如说4000/3,如何取得该值最近的偶数?谢谢!
发表于 2010-6-29 12:47:30 | 显示全部楼层 来自 浙江杭州
Simdroid开发平台
本帖最后由 macaulish 于 2010-6-29 15:35 编辑

你这个要求么肯定要自己编程了,,一般软件都不会提供这个功能。
不过你可以借助ansys的 nint()函数,
1. 先 nint(4000/3)返回函数整数部分N,小数部分D
2.如果N是偶数,那么N就是所求。否则转入3
3.由于nint()是四舍五入的,所以要判断小数部分D;
回复 不支持

使用道具 举报

发表于 2010-6-29 14:43:20 | 显示全部楼层 来自 河北石家庄
a=4000/3
b=nint(a)
*if,mod(b,2),eq,0,then
n=b
*elseif,a,gt,b,then
n=nint(a+0.5)
*elseif,a,lt,b,then
n=nint(a-0.5)
*endif
回复 不支持

使用道具 举报

发表于 2010-6-29 15:41:17 | 显示全部楼层 来自 浙江杭州
本帖最后由 macaulish 于 2010-6-29 15:47 编辑

3# iamperisher

n=nint(a+0.5)
n=nint(a-0.5) 这两步都不对。

假设 a=17.4,,需要考虑 16.5~17.4,  17.5~18.4,的区间,取16还是18

a=4000/3
b=nint(a)
*if,mod(b,2),eq,0,then
n=b
*elseif,a,gt,b,then
n=b+1
*elseif,a,lt,b,then
n=b-1
*endif
回复 不支持

使用道具 举报

发表于 2010-6-29 16:12:12 | 显示全部楼层 来自 河北石家庄
本帖最后由 iamperisher 于 2010-6-29 16:58 编辑

嗯,但为何呢?楼主是要“如何取得该值最近的偶数?”对于17.4,应该是18而非16啊。(程序运行后的结果n=18)
回复 不支持

使用道具 举报

发表于 2010-6-29 16:37:33 | 显示全部楼层 来自 浙江杭州
5# iamperisher

是取18啊,但是要让程序知道取18
回复 不支持

使用道具 举报

发表于 2010-6-29 19:17:03 | 显示全部楼层 来自 天津
nint(a/b/2)*2  行不行

提供个思路
回复 不支持

使用道具 举报

发表于 2010-6-30 11:40:26 | 显示全部楼层 来自 四川德阳
这种都自己编段程序实现的
回复 不支持

使用道具 举报

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

本版积分规则

Simapps系列直播

Archiver|小黑屋|联系我们|仿真互动网 ( 京ICP备15048925号-7 )

GMT+8, 2024-9-25 18:28 , Processed in 0.048370 second(s), 12 queries , Gzip On, MemCache On.

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

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