关于IsNumeric函数,能解决给100分

computerdragon 2006-02-07 11:22:20
我是个新手,在给公司作项目,遇到一个问题
代码如下
Private Sub Command1_Click()
Dim a As Boolean

a = IsNumeric("10E4")

MsgBox a
End Sub

实际上那IsNumeric函数里的数是个科学记数法,所以他返回的是True,
但他又有字母E,所以我想让他返回false,又不想用循环,
望各位高人给予帮助,最好是代码,能解决者给100分
...全文
136 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
faysky2 2006-02-07
  • 打赏
  • 举报
回复
如果有除了e之外的别的字母出现咋办那?
------------------------------------
出现这种情况无非就是两个字母E(e)和D(d),可以这样来处理:

Dim str As String
str = "10E4"
If InStr(UCase(str), "D") <> "" Or InStr(UCase(str), "E") <> "" Then
a = False
Else
a = IsNumeric(str)
End If
zyl910 2006-02-07
  • 打赏
  • 举报
回复
用转换字符串为浮点数
如果转换失败表示不是数字

IsNumeric只是用来判断某个字符串是否全由数字组成
computerdragon 2006-02-07
  • 打赏
  • 举报
回复
楼上的原理我明白,就是把e替换成a,但是,
如果有除了e之外的别的字母出现咋办那?
zyl910 2006-02-07
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
dim a as boolean
Dim f As Double

on error resume next
f = CDbl("10E4")
a = (0=Err.Number)
on error goto 0

MsgBox a
End Sub
faysky2 2006-02-07
  • 打赏
  • 举报
回复
str="10E4"
a = IsNumeric(str) And Instr(Ucase(str),"E")=""
faysky2 2006-02-07
  • 打赏
  • 举报
回复
str="10E4"
a = IsNumeric(str) And Instr(Ucase(str),"E")
ZOU_SEAFARER 2006-02-07
  • 打赏
  • 举报
回复
以上只要是科学记数法都可以返回false
ZOU_SEAFARER 2006-02-07
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
Dim a As Boolean

a = IsNumeric(Replace("10E4", "E", "A"))

MsgBox a
End Sub

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧