Как ограничить размер переменной типа double? - C#
Формулировка задачи:
Здравствуйте! Когда я пытаюсь найти квадратный корень любого числа через класс Math, то выходит число с очень большим кол-вом знаком после запятой. И из-за этого срабатывает исключение. Как исправить?
Код на всякий случай -
double _dbl = Convert.ToDouble(_TotalEnergy); _dbl = Math.Sqrt(_dbl);
Решение задачи: «Как ограничить размер переменной типа double?»
textual
Листинг программы
decimal _Mass, _Velocity, _TotalEnergy;
int _C = 229792459;
Console.Clear();
Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
Console.WriteLine("Масса (КГ) :");
_Mass = Convert.ToDecimal(Console.ReadLine());
Console.Clear();
Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
Console.WriteLine("Масса = " + _Mass + " КГ");
Console.WriteLine("Скорость (М/С) :");
_Velocity = Convert.ToDecimal(Console.ReadLine());
Console.Clear();
Console.WriteLine("Сколько потребуется для разгона энергии (дробные числа через ","):");
Console.WriteLine("Масса = " + _Mass + " КГ");
Console.WriteLine("Скорость = " + _Velocity + " М/С");
_TotalEnergy = 1 - ((_Velocity * _Velocity) / (_C * _C));
double _dbl = Convert.ToDouble(_TotalEnergy);
_dbl = Math.Sqrt(_dbl);
_TotalEnergy = Convert.ToDecimal(_dbl);
_TotalEnergy = 1 / _TotalEnergy;
_TotalEnergy = _TotalEnergy - 1;
_TotalEnergy = _TotalEnergy * (_C * _C);
_TotalEnergy = _TotalEnergy * _Mass;
Console.WriteLine("================================");
Console.WriteLine("Для разгона объекта массой " + _Mass + " кг до скорости " + _Velocity + " м/с потребуется\n" + _TotalEnergy + " Дж");
Console.ReadKey();