#vb.net
#vb.net
Вопрос:
Как мне преобразовать строку в целое число? Вот что я попробовал:
Price = CInt(Int(txtPrice.Text))
Я удалил Int
и все равно получил исключение.
Комментарии:
1. С какими исключениями вы сталкиваетесь? если вы используете vb.net в вашем коде удаляются десятичные разряды.
2. Я использую
CInt()
и не испытывал никаких проблем
Ответ №1:
Используйте
Convert.toInt32(txtPrice.Text)
Это предполагает VB.NET .
Судя по названию «txtPrice», вам действительно нужно не целое число, а десятичное. Поэтому вместо этого используйте:
Convert.toDecimal(txtPrice.Text)
Если это так, убедитесь, что все, что вы присваиваете этому, является десятичным, а не целым числом.
Комментарии:
1. В Vb.net .. Этот код получит исключение ‘Входная строка была не в правильном формате.;.
2. Я только что попробовал, но это не сработало. На этот раз я получил ошибку формата. Я все еще пытаюсь. У меня осталось почти 1 1/2 часа,
3. Dim Цена как целое Dim результат как логическое значение = Int32. Попробуйте проанализировать (txtPrice. Текст, цена)
4. Единственный способ, которым я могу получить ошибку формата с этим, — это на самом деле иметь ошибку (введите символ / символ). Для исправления этого потребуется простая проверка входных данных, которая не указана в качестве требования.
5.Это решение выдает ошибку для меня и, похоже, не очень надежное для производства из-за этой проблемы с разделом реестра support.microsoft.com/kb/942460
CInt(<string>)
работает хорошо.
Ответ №2:
Вы можете попробовать:
Dim Price As Integer
Int32.TryParse(txtPrice.Text, Price)
Комментарии:
1. Я думаю, что это действительно лучший ответ. Использование метода TryParse() Int32 или Decimal позволит обрабатывать другие данные, вводимые в текстовое поле, например, символы валюты и тому подобное. Он также не будет генерировать исключение, а просто вернет логическое значение, указывающее, прошло оно или не прошло.
Ответ №3:
Для преобразования string в int можно использовать следующее:
- CInt(строка) для целых чисел
- CDec(строка) для десятичных дробей
Для получения подробной информации обратитесь к функциям преобразования типов (Visual Basic).
Ответ №4:
Пожалуйста, попробуйте это, VB.NET 2010 год:
Integer.TryParse(txtPrice.Text, decPrice)
decPrice = Convert.ToInt32(txtPrice.Text)
От Мола Тшепо Кингсли (WWW.TUT.AC.ZA )
Ответ №5:
Преобразовать.ToIntXX не любит, когда ему передаются строки с десятичными дробями.
Для обеспечения безопасности используйте
Convert.ToInt32(Convert.ToDecimal(txtPrice.Text))
Ответ №6:
Вы можете попробовать следующее:
Dim valueStr as String = "10"
Dim valueIntConverted as Integer = CInt(valueStr)
Другой пример:
Dim newValueConverted as Integer = Val("100")
Ответ №7:
Используйте Val(txtPrice.text)
Я бы также разрешил использовать только число и символ точки, вставив некоторый код проверки в событие нажатия клавиши текстового поля цены.
Ответ №8:
Если в текстовом поле могут быть недопустимые символы, это вызовет исключение. Val
Команда извлекает числа и удаляет недопустимые символы. Возвращает значение double. Итак, вы хотите преобразовать результат Val
в любой нужный вам тип.
Price = Convert.toInt32(Val(txtPrice.Text))
Это вернет 0 вместо выдачи ошибки при неверном вводе. Если это нежелательно, вы должны проверить, что входные данные действительны перед преобразованием.