Your code should probably look like this (See below for explanation)
If Double.TryParse(list_numbers.Item(i), possibledouble) Then
Select Case possibledouble
Case 0 To 49.99
list_numbers.Item(i) = ""
Case 59 To 99.99
list_numbers.Item(i) = "1"
Case 100 To 199.99
list_numbers.Item(i) = "2"
Case Is > 200
list_numbers.Item(i) = "3"
Case Else
list_numbers.Item(i) = "n/a"
End Select
End If
Well there are a few problems with your code as far as I can see, which I'm sure explain the behavior your seeing.
First of all the Double.Parse method is actually already returning you a double for that item, so no need to convert it again with Cdbl later on.
Another more major problem with this line is that if the method cannot convert the string to a double it throws an exception. I'm guessing some where in your code you're catching that exception without realizing it.
Last problem with this is that I don't actually find any overloads for Double.Parse that except string and double which lead me to beleive that you were actually meaning to use the Double.TryParse method and not the Parse method. TryParse will return true or false if the parsing succeeded and put the value in the double you specified if it did.