Of course it does, because you can't convert 0.5 to an Int32. You would need to convert the Text of the TextBox to a Single, Double or Decimal first, then scale up, THEN ROUND OFF, then convert to an Int32. Even in VB using CInt your code would be bad because you would be rounding the 0.5 to an Integer first before scaling, so 0.5 would end up 1000 instead of 500.

Whether using VB or C#, you should be using the TryParse method of the appropriate numeric type first to make sure that you have a valid number and convert it if you do. You then scale from seconds to milliseconds. Using VB you can then round and convert to Int32 in one go using CInt, but C# requires you to do it in two steps, using Math.Round and then Convert.ToInt32.