3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
||||||
1 | ||||||
Как ограничить размер переменной типа double?09.07.2017, 15:37. Показов 2402. Ответов 5
Метки нет (Все метки)
Здравствуйте! Когда я пытаюсь найти квадратный корень любого числа через класс Math, то выходит число с очень большим кол-вом знаком после запятой. И из-за этого срабатывает исключение. Как исправить?
Код на всякий случай -
0
|
09.07.2017, 15:37 | |
Ответы с готовыми решениями:
5
Как сгенерировать случайное число типа я double имея на входе 2 числа типа double - минимальное и максимальное Вызов переменной типа int и типа double из нескольких форм Передача переменной типа double из c# в переменную типа float в SQL Ошибка в переменной типа double |
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
|
09.07.2017, 15:49 [ТС] | 3 |
Я и подумал, что это решение. Но как? Исключение - переполнение переменной типа double
0
|
Администратор
|
|
09.07.2017, 15:55 | 4 |
Jesterru, раз возникает переполнение, то нужно не ограничивать а наоборот "расширять". Но прежде чем давать советы хочется точно понять что происходит. Пример кода для вопроизведения исключения можешь показать? Если исключение возникает в коде из первого сообщения, то расскажи какой тип у переменной _TotalEnergy и какое и нее значение.
0
|
3 / 2 / 2
Регистрация: 19.06.2016
Сообщений: 299
|
||||||
09.07.2017, 16:01 [ТС] | 5 | |||||
Тип - Decimal. Значение - зависит от входных данных. Когда значение маленькое, то все норм. Но когда значение достигает больших значений (Программа высчитывает по формулам энергию тел при субсветовых скоростях), то исключение выскакивает. Само исключение для переменной _dbl, "Значение было недопустимо малым или недопустимо большим для double"
Добавлено через 1 минуту Кликните здесь для просмотра всего текста
0
|
Администратор
|
|
09.07.2017, 16:21 | 6 |
Jesterru, проблема в расчете
_TotalEnergy = 1 - ((_Velocity * _Velocity) / (_C * _C)) дает отрицательное число. Корень из отрицательного числа это NaN - Not A Number. Поэтому далее и происходит ошибка при преобразовании. Решается путем замены типа переменной _C на long и всех decimal на double.
0
|
09.07.2017, 16:21 | |
09.07.2017, 16:21 | |
Помогаю со студенческими работами здесь
6
Как ограничить размер ListBox размером окна (расползается на весь размер)? Теряется точность переменной типа double Странный баг с переменной типа double** Присваивание переменной типа double строки Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |