powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
24 сообщений из 24, страница 1 из 1
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709677
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на MSVS-2012 Expess модом отрезаю дробное число с текст бокса и вставляю в переменную типа double, и система ругается, не дает делать так
на MSVS-2010 делал без проблем работало
-----------
dim sys_cpu as double

TextBox1.Text="Значение: 9.7"
sys_cpu = Mid(TextBox1.Text, 11,3)
-----------------
и система ругается так:

Первый этап обработки исключения типа "System.InvalidCastException" в Microsoft.VisualBasic.dll
Дополнительные сведения: Приведение строки "9.7" к типу "Double" является недопустимым.

на MSVS-2012 Expess

как решить проблему?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709707
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,
1. Использовать соответствующие методы типа Double.
2. Проверить региональные настройки разделителя целой и дробной части.
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709718
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

я Вас не очень понял
просто у меня практики не очень большое, может быть из-за этого((
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709726
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohdim sys_cpu as double

TextBox1.Text="Значение: 9.7"
sys_cpu = Mid(TextBox1.Text, 11,3)

Здесь вы неявно пытаетесь привести строку к типу double. Скорее всего в региональных настройках вашего компьютера разделителем целой и дробной части является запятая, а не точка.

Вместо неявного примените Double.TryParse
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709730
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohAlex Kuznetsov,

я Вас не очень понял
просто у меня практики не очень большое, может быть из-за этого((
Я же Вам написал, использовать соответствующие методы типа Double, что не понятного, или в MSDN забанен?
И про региональные настройки системные тоже неясно?
Ну тогда я не знаю...чем ещё можно помочь.
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709774
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На шарпе я сделала так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
string test = "Значение: 9.7";
string sep = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string wrongsep = sep == "," ? "." : ",";
string todbl = test.Substring(10).Replace(wrongsep, sep);
double dbl;
if (!Double.TryParse(todbl, out dbl))
      MessageBox.Show("Введено не верное значение");
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709786
Halfling
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex KuznetsovНу тогда я не знаю...чем ещё можно помочь.
Alex Kuznetsov, вы могли бы:
1. Не огрызаться.
2. Дать ссылку на документацию.

shoh,
1. Начните отсюда
2. Смотрите какой у вас разделитель используется: System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709814
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolu4kaНа шарпе я сделала так:
Код: c#
1.
2.
3.
4.
5.
6.
7.
string test = "Значение: 9.7";
string sep = System.Globalization.CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator;
string wrongsep = sep == "," ? "." : ",";
string todbl = test.Substring(10).Replace(wrongsep, sep);
double dbl;
if (!Double.TryParse(todbl, out dbl))
      MessageBox.Show("Введено не верное значение");



Используя Ваш метод попытайтесь сконвертировать вот такое число "9,999.7".
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709842
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alex Kuznetsov,
А в числе можно использовать два разных разделителя?
Запись "9,999.7" с точки зрения математики верна по Вашему?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709847
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolu4kaЗапись "9,999.7" с точки зрения математики верна по Вашему?
Конечно верна. Более того, в прегрузке метода Parse можно указать, засчитывать ли запятые как разделитель тысяч
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709878
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kolu4kaAlex Kuznetsov,
А в числе можно использовать два разных разделителя?
Запись "9,999.7" с точки зрения математики верна по Вашему?
С точки зрения математики возможно не верна, а вот с точки зрения визуального представления чисел верна абсолютно .

В данном случае и контексте мы имеем дело с визуальным представлением числа.
Вы же не будете отрицать тот факт, что строка "9,999.7" и вещественное число 9999.7 не одно и то-же с точки зрения типов переменных, которые могут хранить эти значения?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709895
Kolu4ka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ребята, уговорили, я согласна! :-)

Тоже буду разбираться с Parse.
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709955
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да оказывается у меня региональные настройки настроены на , а не на точку
в связи с этим моя программа не понимает это и ругается
а как можно настроить систему чтобы понимал не , а . ?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709986
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,

На уровне операционной системы это делается через панель управления.

На уровне кода .Net установкой соответствующих параметров объекта класса NumberFormatInfo , получаемого как одно из свойств объекта класса CultureInfo .
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38709988
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,
Почитайте уже наконец MSDN
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710047
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

на уровне ОС поменял региональные настройки и все пошло
не знаю так правильно или нужно было в программе как то делать изменение , но сейчас работает
как ваше мнение?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710055
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohкак ваше мнение?
Alex Kuznetsov1. Использовать соответствующие методы типа Double.
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710058
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohAlex Kuznetsov,

на уровне ОС поменял региональные настройки и все пошло
не знаю так правильно или нужно было в программе как то делать изменение , но сейчас работает
как ваше мнение?
Всё зависит от задачи и от того на скольких и каких рабочих станциях будет работать Ваше приложение.

Кроме того непонятно откуда в приложение поступают данные, которые необходимо конвертировать.
А если сменится формат поступивших данных, что делать?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710060
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79shohкак ваше мнение?
Alex Kuznetsov1. Использовать соответствующие методы типа Double.Я бы даже больше сказал - использовать соответствующие свойства объекта класса NumberFormatInfo в зависимости от формата поступающих данных.
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710076
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные формируются через другую систему ктр всегда снимает статистику сервера и записывает в спец.файл.
моя задача сделать прошку ктр будет выбирать из этого файла (ктр содержит в себя тысячи строк (инфо)) нужное для пользователя и обработать, показать на экране готовые обработанные данные . Пользователей пока 1 но в будущем может быть будет много
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710080
Pallaris
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shoh,

ктр - костромской театральный реестр?
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710102
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
после выборки записываю значение в переменную и используя формулы считаю сколько что....
вот запись дробный чисел в переменную double не получает и я завис(
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710107
shoh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex Kuznetsov,

у тебя есть простой пример как использовать это в моем случ.?
я почитал статью но там не очень понял, много что написано (, а я еще не проф.по vb.net
...
Рейтинг: 0 / 0
выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
    #38710123
Alex Kuznetsov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shohAlex Kuznetsov,

у тебя есть простой пример как использовать это в моем случ.?
я почитал статью но там не очень понял, много что написано (, а я еще не проф.по vb.net
Шахзод, а простой пример из MSDN не подойдёт разве?
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / выходит ошибка : Приведение строки "" к типу "Double" является недопустимым.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]