Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2014, 12:59   #1
daniil_galahow
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 13
Вопрос Непонятная ошибка при Convert.ToDouble

Здравствуйте, дорогие коллеги.

Имею следующее: C# из-под Mono Develop, программа для расчёта определённого физического процесса, вводим данные. Данные вводятся из файла .txt, написуемого пользователем, парсятся, и часть из них преобразуется в формат double для, собственно, расчёта.

Имеется вот такая вот строчка:
Код:
//valueStr - строка, в неё выбирается строковое значение из файла
//coeff - double, коэффициент, считаемый программой
double value=Convert.ToDouble(valueStr) * coeff;
Эта строка кода вызывает невразумительную проблему. Допустим, valueStr="10". Так вот, Convert.ToDouble(valueStr) возвращает значение типа 25,5.
Почему так происходит, никак понять не могу, бился уже часа 4, но озарения не снизошло.

Как вылечить?
daniil_galahow вне форума Ответить с цитированием
Старый 13.06.2014, 13:16   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Каким кодом ты это проверял?
Я смотрю у тебя там умножение стоит.
Сделай пустой проект - передай в параметр 10-ку и посмотри что она выведет.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2014, 16:36   #3
daniil_galahow
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию

В смысле каким кодом? Я в отладчике это увидел.

Проверил так как ты сказал, и в коде программы и в отдельном проекте. Выяснилась странная вещь.
В самой программе, даже если подавать в качестве параметра просто "10" (вот так:
Код:
double value=Convert.ToDouble("10");
), то функция выдаёт уже не 25,5, а 12.
В тестовом (пустом) проекте, с такой же строчкой функция в первый запуск честно выдала 10, во второй и последующие функция возвращает 6.

И смех и грех, однако.
daniil_galahow вне форума Ответить с цитированием
Старый 13.06.2014, 16:40   #4
Luuzuk
Форумчанин
 
Аватар для Luuzuk
 
Регистрация: 18.01.2012
Сообщений: 975
По умолчанию

а Double.TryParse() как себя ведет?
Благодарить в репутацию. Проклинать — туда же
Luuzuk вне форума Ответить с цитированием
Старый 13.06.2014, 16:44   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Безымянный.jpg
Так что проблема врядли с Моно.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 13.06.2014, 19:13   #6
daniil_galahow
Пользователь
 
Регистрация: 04.03.2013
Сообщений: 13
По умолчанию

Luuzuk, с Double.TryParse() всё заработало нормально. Правда я так и не понял что ему не нравилось.

Коллеги, спасибо. Я так полагаю, "solved".

Update: нет, всё так же. Только теперь он так ошибается не каждый раз, а через раз.

Последний раз редактировалось daniil_galahow; 13.06.2014 в 19:50.
daniil_galahow вне форума Ответить с цитированием
Старый 13.06.2014, 20:06   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну не знаю... ИМХО ошибка где-то в твоем коде всетки...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++. в программе ошибка: cannot convert «<brace-enclosed initializer list>» to «char» in assignment Сергей.Ш Общие вопросы C/C++ 4 23.10.2013 18:37
Непонятная ошибка при работе программы Вампирёнок Общие вопросы Delphi 7 24.01.2011 23:41
Convert error при переборе Horus92 Помощь студентам 1 17.08.2010 22:07
Непонятная ошибка при попытке отобразить содержимое таблица базы данных в компоненте DBGrid. hk47 БД в Delphi 6 17.04.2010 08:05
Непонятная ошибка при загрузке программы в ОС Vista М_Виктор БД в Delphi 1 25.09.2009 10:39