求助,mathcad中出现if 语句判断错误
mathcad吧
全部回复
仅看楼主
level 3
狂怒圣印 楼主
求助。本人自己编了一个小程序方便工作,但发现所写if语句出现判断错误,不清楚是为什么。应该是取值包络问题,下面是程序错误的截图(红色为错误部分)
其中的hjj取值应为300mm,但程序判断时已经大于300mm。
如果不用计算得出的结果,直接手动输入hjj=300mm,则程序判断为满足。
接触mathcad不久,向大家请教问题出在哪里。
2015年06月10日 11点06分 1
level 11
右下角,ceil 和 floor 两个函数的结果已经证实原因了。
hjj的实际值大于300,用float,20 查看一下。
2015年06月10日 11点06分 3
谢谢!看来问题出在max函数,max取最大值的各个数如果代入下一个环节计算hjj的值,都是小于或等于300的,应该是这个函数的机制给结果加了0.0000000...1的值!
2015年06月11日 00点06分
回复
��ŭʥӡ
:后面带有一个极小的小数,通常是由数据类型造成的。因为这个原因,在判断两个双精度浮点型(double)变量是否相等时,通常采用A-B<0.000001来作为A=B的判断依据。
2015年06月11日 03点06分
回复
��ŭʥӡ
:不过既然你猜测是Max函数的问题,最好还是再验证一下,我看Max函数的参数中最后一个变量是c,这个值是多少?
2015年06月11日 04点06分
回复
angelycs
:刚刚做了一下对比试验。问题出在所求值上,具体我下面上图说明。有点怪
2015年06月11日 07点06分
level 3
狂怒圣印 楼主
刚刚做了对比,所用的第一步计算数据全为手动输入,基本可以确定不是输入数据的问题。
所用mathcad版本为贴吧下载的 mathcad15 M30。
2015年06月11日 07点06分 4
level 12
“工具”菜单→“工作表选项”→“计算”,将“比较和截断使用精确等式”前面的“√”去掉。
2015年06月11日 07点06分 5
level 12
2015年06月11日 07点06分 6
谢谢!这下我放心了!以为自己哪里弄错了
2015年06月11日 07点06分
level 12
MC的“升级指南”里的话:
这些内容都在以前的帖子里说过,而且根本就都是前几天就说过的,就在MC吧第1页里,往下看看就能看到了。MC自带的教程里也有,help里也有,自己翻翻看看就知道了的。
总是重复的说这些废话,很没意思的。
2015年06月11日 07点06分 7
level 11
不可避免的,如果一个地方存在问题,那么就总是会被善于发现问题的人独立地重复地发现,还是应当鼓励大家在发现问题后先自行研究一下的行为。
2015年06月11日 10点06分 8
嗯,有道理。
2015年06月11日 13点06分
level 10
[太开心]能分享下你写的程序吗
2015年06月18日 00点06分 9
1