返回列表 上一主題 發帖

[發問] 判斷是否為數字型態最快的方法?

[發問] 判斷是否為數字型態最快的方法?

各位大大好,

以下是我寫的方式,想請問各位大大

是否有更快的方式可以判別出

某陣列中的值

是否為純數字(只有正的數字,沒有+-.等符號)
  1. myArray = Array("!@$!$222", "1122")
  2.     For Each e In myArray
  3.         For i = 1 To Len(e)
  4.             If IsNumeric(Mid(e, i, 1)) = False Then
  5.                 check = False
  6.                 Exit For
  7.             End If
  8.         Next
  9.     Next
複製代碼
PKKO

本帖最後由 bobomi 於 2015-4-5 15:47 編輯

dim d as double

    For Each e In myArray  '確定要的值 含0的話 用這個
        check = IsNumeric(e)
        If check Then
           d = e
           check = d >= 0 And (d - Fix(d)) = 0
        End If
    Next
'====
    For Each e In myArray  '確定要的值 不含0的話 用這個
        d = Val(e)
        If d > 0 Then
           check = (d - Fix(d)) = 0
        End If
    Next

TOP

回復 2# bobomi


    感謝,沒想到有FIX這種檢查方式

但還想再追問一下,若只想把非數字都去掉呢?(只留下純數字, + 、 ^ * - 都不要)

ex: 111.11  =>11111
EX: .11^1   =>111

如果要達到這種只取出純數字
是不是只能用我原本的方式徒法煉鋼?
PKKO

TOP

[如果要達到這種只取出純數字]

運算次數少的話用你那個就好了
運算次數多的話 , 用正則應該是還可以快個2,3倍

但下面也會比你快
      k = Asc(Mid(e, i, 1))
      check = k >= 48 And k <= 57

TOP

回復 4# bobomi


    多謝!
PKKO

TOP

        靜思自在 : 有智慧才能分辨善惡邪正;有謙虛才能建立美滿人生。
返回列表 上一主題