主题:在VFP中数值无穷大用什么表示
zfxs_wang
[专家分:180] 发布于 2010-01-30 17:57:00
例如:EVALUATE("9.98/0.00")=*******,由于函数参数是通过各种计算得来的字符串,"/"号后面的分母很难确定,我希望当EVALUATE函数的计算结果为*******(无穷大)时,人为地将计算结果赋为0.00,请问这个代码如何写?先谢了!
回复列表 (共4个回复)
沙发
sywzs [专家分:5650] 发布于 2010-01-31 08:59:00
请不要忘记运算规则:除数不能为零。
板凳
qjbzjp [专家分:8830] 发布于 2010-02-04 10:14:00
可以预先判断分母是否为零,然后再计算:
结果=IIF(分母=0,0,EVALUATE("9.98/分母"))
3 楼
zfxs_wang [专家分:180] 发布于 2010-02-11 11:24:00
谢谢老师们的热心教诲.由于函数EVALUATE()中的参数是经过系统运算得来的字符串,这其中是否有"/"号或其他什么运算符号无法得知,故判断分母是否为0比较困难.后来我发现函数EVALUATE()有个规律,当分母为0时,分子大于0,则计算结果无穷大;分子小于等于0时,则计算结果无穷小.据此,我用一个字段所能允许的最大值作业判断条件,解决了这个问题.再次谢谢大家的赐教!
4 楼
Gleam [专家分:3100] 发布于 2010-02-11 12:04:00
两种方案:
1、可以先判断EVALUATE()中的参数是否包含“/”以及除号后面是否为零。来解决问题。
2、你可以根据你得到的所需要的最大结果来判断,如果大于所需要的最大结果就付值为零。
我来回复