乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 111|回复: 7

如何计算用户输入的表达式的值?

[复制链接]

21

主题

105

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2003-10-20 16:45:00 | 显示全部楼层 |阅读模式
如何计算用户输入的表达式的值?
如下:
请输入功率:20-5*9
如果用户输入以上表达式,那么我如何得到最后的值:-25
??请问有没有简单的方法?
dim scgl as double
dim str as string
str = ThisDrawing.Utility.GetString(50,  vbcrlf & "输入功率:")  '一般这样:25-20
scgl=val(str) '这样根本不可能过去的。VAL可以将表达式转为数值,
                  ‘可是对于字串来说,  不能完成啊
msgbox scgl
回复

使用道具 举报

26

主题

589

帖子

10

银币

中流砥柱

Rank: 25

铜币
693
发表于 2003-10-21 11:55:00 | 显示全部楼层
最简单的就用Val函数吧,它会对参数首先进行计算,然后试着转换为数字。
如:Val(20-5*9)=-25。
回复

使用道具 举报

gzy

25

主题

1118

帖子

8

银币

顶梁支柱

Rank: 50Rank: 50

铜币
1221
发表于 2003-10-21 12:31:00 | 显示全部楼层
str(x) 将数值表达式转成字符串
chr(x)将ACS码转成字符
asc(x)将字符转成ACS码
val(x)将数字字符串转成数值
int(x)取整
cint(x)小数部分四舍五入
clng(x)转换成长整型数
cdbl(x)转换成双精度数
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-10-21 12:47:00 | 显示全部楼层
用GEOMCAL.ARX就可以实现
回复

使用道具 举报

36

主题

201

帖子

8

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
345
发表于 2003-10-21 12:53:00 | 显示全部楼层


lgntgvoca0h.jpg

lgntgvoca0h.jpg


如上图
回复

使用道具 举报

21

主题

105

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2003-10-21 13:42:00 | 显示全部楼层
呵呵,我决定采用二楼的做法。可是:
dim scgl as double
dim str as string
str = ThisDrawing.Utility.GetString(50,  vbcrlf & "输入功率:")  '一般这样:25-20
scgl=val(str) '这样根本不可能过去的。VAL可以将表达式转为数值,
                  ‘可是对于字串来说,  不能完成啊
msgbox scgl
回复

使用道具 举报

2

主题

77

帖子

6

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
85
发表于 2003-10-21 14:23:00 | 显示全部楼层
Val函数并不能返回以字符串形式保存的表达式的值,在AutoCADVBA中可以用以下代码,但调用时,字符串形式的表达式必须是合法的数学表达式.
Sub CalExample()
    MsgBox CalExp("20-5*9")
End Sub
Public Function CalExp(sExp As String) As Double
    Dim Temp As Double
    Temp = ThisDrawing.GetVariable("userr1")
    ThisDrawing.SendCommand "setvar userr1 " & "'cal " & sExp & vbCr
    CalExp = ThisDrawing.GetVariable("userr1")
    ThisDrawing.SetVariable "userr1", Temp
End Function
回复

使用道具 举报

21

主题

105

帖子

7

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
189
发表于 2003-10-21 14:39:00 | 显示全部楼层
我也是这么做的,看来只好如此了。不过总觉得不太习惯。
呵呵,算了,解决问题就行了吧。
回复

使用道具 举报

发表回复

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

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-3-14 21:12 , Processed in 0.370763 second(s), 71 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表