Should check > 0 rather than just != 0 (which is what ! checks).
If the value has been passed as either -30 or 30% (nonsensical though either is) DoubleFromString() has expressed the result as -30.0; unless you're going to implement some meaning for percentages or negative values, below, you need to handle them here.